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