001package com.nimbusds.jose;
002
003
004import 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 */
017public 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}