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    }