001    package com.nimbusds.jose;
002    
003    
004    import java.util.Set;
005    
006    
007    /**
008     * Common interface for JSON Web Encryption (JWE) {@link JWEEncrypter 
009     * encrypters} and {@link JWEDecrypter decrypters}.
010     *
011     * <p>Callers can query the JWS provider to determine its algorithm 
012     * capabilities.
013     *
014     * @author  Vladimir Dzhuvinov
015     * @version $version$ (2012-10-16)
016     */
017    public interface JWEAlgorithmProvider {
018    
019    
020            /**
021             * Returns the names of the supported JWE algorithms. These correspond 
022             * to the {@code alg} JWE header parameter.
023             *
024             * @return The supported JWE algorithms, empty set if none.
025             */
026            public Set<JWEAlgorithm> supportedAlgorithms();
027    
028    
029            /**
030             * Returns the names of the supported encryption methods. These 
031             * correspond to the {@code enc} JWE header parameter.
032             *
033             * @return The supported encryption methods, empty set if none.
034             */
035            public Set<EncryptionMethod> supportedEncryptionMethods();
036    }