001package com.nimbusds.jose;
002
003
004import java.util.Set;
005
006import com.nimbusds.jose.jca.JCAAware;
007import com.nimbusds.jose.jca.JWEJCAContext;
008
009
010/**
011 * JSON Web Encryption (JWE) provider.
012 *
013 * <p>The JWE provider can be queried to determine its algorithm capabilities.
014 *
015 * @author  Vladimir Dzhuvinov
016 * @version 2015-05-26
017 */
018public interface JWEProvider extends JOSEProvider, JCAAware<JWEJCAContext> {
019
020
021        /**
022         * Returns the names of the supported algorithms by the JWE provider
023         * instance. These correspond to the {@code alg} JWE header parameter.
024         *
025         * @return The supported JWE algorithms, empty set if none.
026         */
027        Set<JWEAlgorithm> supportedJWEAlgorithms();
028
029
030        /**
031         * Returns the names of the supported encryption methods by the JWE
032         * provier. These correspond to the {@code enc} JWE header parameter.
033         *
034         * @return The supported encryption methods, empty set if none.
035         */
036        Set<EncryptionMethod> supportedEncryptionMethods();
037}