001package com.nimbusds.jose;
002
003
004import com.nimbusds.jose.jwk.ECKey;
005import com.nimbusds.jose.util.Base64URL;
006
007
008/**
009 * Read-only view of a {@link JWEHeader JWE header}.
010 *
011 * @author Vladimir Dzhuvinov
012 * @version $version$ (2012-10-16)
013 */
014public interface ReadOnlyJWEHeader extends ReadOnlyCommonSEHeader {
015
016
017        /**
018         * Gets the algorithm ({@code alg}) parameter.
019         *
020         * @return The algorithm parameter.
021         */
022        @Override
023        public JWEAlgorithm getAlgorithm();
024
025
026        /**
027         * Gets the encryption method ({@code enc}) parameter.
028         *
029         * @return The encryption method parameter.
030         */
031        public EncryptionMethod getEncryptionMethod();
032
033
034        /**
035         * Gets the Ephemeral Public Key ({@code epk}) parameter.
036         *
037         * @return The Ephemeral Public Key parameter, {@code null} if not 
038         *         specified.
039         */
040        public ECKey getEphemeralPublicKey();
041
042
043        /**
044         * Gets the compression algorithm ({@code zip}) parameter.
045         *
046         * @return The compression algorithm parameter, {@code null} if not 
047         *         specified.
048         */
049        public CompressionAlgorithm getCompressionAlgorithm();
050
051
052        /**
053         * Gets the agreement PartyUInfo ({@code apu}) parameter.
054         *
055         * @return The agreement PartyUInfo parameter, {@code null} if not
056         *         specified.
057         */
058        public Base64URL getAgreementPartyUInfo();
059
060
061        /**
062         * Gets the agreement PartyVInfo ({@code apv}) parameter.
063         *
064         * @return The agreement PartyVInfo parameter, {@code null} if not
065         *         specified.
066         */
067        public Base64URL getAgreementPartyVInfo();
068
069
070        /**
071         * Gets the encryption PartyUInfo ({@code epu}) parameter.
072         *
073         * @return The encryption PartyUInfo parameter, {@code null} if not
074         *         specified.
075         */
076        public Base64URL getEncryptionPartyUInfo();
077
078
079        /**
080         * Gets the encryption PartyVInfo ({@code epv}) parameter.
081         *
082         * @return The encryption PartyVInfo parameter, {@code null} if not
083         *         specified.
084         */
085        public Base64URL getEncryptionPartyVInfo();
086}