001package com.nimbusds.jose;
002
003
004import java.net.URL;
005
006import com.nimbusds.jose.jwk.JWK;
007import com.nimbusds.jose.util.Base64;
008import com.nimbusds.jose.util.Base64URL;
009
010
011/**
012 * Read-only view of {@link CommonSEHeader common JWS/JWE header parameters}.
013 *
014 * @author Vladimir Dzhuvinov
015 * @version $version$ (2012-09-19)
016 */
017public interface ReadOnlyCommonSEHeader extends ReadOnlyHeader {
018
019
020        /**
021         * Gets the JSON Web Key (JWK) Set URL ({@code jku}) parameter.
022         *
023         * @return The JSON Web Key (JWK) Set URL parameter, {@code null} if not 
024         *         specified.
025         */
026        public URL getJWKURL();
027
028
029        /**
030         * Gets the JSON Web Key (JWK) ({@code jwk}) parameter.
031         *
032         * @return The JSON Web Key (JWK) parameter, {@code null} if not
033         *         specified.
034         */
035        public JWK getJWK();
036
037
038        /**
039         * Gets the X.509 certificate URL ({@code x5u}) parameter.
040         *
041         * @return The X.509 certificate URL parameter, {@code null} if not 
042         *         specified.
043         */
044        public URL getX509CertURL();
045
046
047        /**
048         * Gets the X.509 certificate thumbprint ({@code x5t}) parameter.
049         *
050         * @return The X.509 certificate thumbprint parameter, {@code null} if 
051         *         not specified.
052         */
053        public Base64URL getX509CertThumbprint();
054
055
056        /**
057         * Gets the X.509 certificate chain parameter ({@code x5c}) 
058         * corresponding to the key used to sign or encrypt the JWS/JWE object.
059         *
060         * @return The X.509 certificate chain parameter, {@code null} if not
061         *         specified.
062         */
063        public Base64[] getX509CertChain();
064
065
066        /**
067         * Gets the key ID ({@code kid}) parameter.
068         *
069         * @return The key ID parameter, {@code null} if not specified.
070         */
071        public String getKeyID();
072}