package javax.crypto.spec; import java.security.spec.AlgorithmParameterSpec; /** * This class specifies the set of parameters used with OAEP Padding, as defined * in the PKCS #1 standard. Its ASN.1 definition in PKCS#1 standard is described * below: * * </pre> * * RSAES-OAEP-params ::= SEQUENCE { hashAlgorithm [0] OAEP-PSSDigestAlgorithms * DEFAULT sha1, maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1, * pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty } * * </pre> * * where * * <pre> * * OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= { { OID id-sha1 PARAMETERS * NULL }| { OID id-sha256 PARAMETERS NULL }| { OID id-sha384 PARAMETERS NULL } | { * OID id-sha512 PARAMETERS NULL }, ... -- Allows for future expansion -- } * PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= { { OID id-mgf1 PARAMETERS * OAEP-PSSDigestAlgorithms }, ... -- Allows for future expansion -- } * PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= { { OID id-pSpecified * PARAMETERS OCTET STRING }, ... -- Allows for future expansion -- } * * </pre> * * @see PSource */ public class OAEPParameterSpec implements AlgorithmParameterSpec { private String mdName; private String mgfName; private AlgorithmParameterSpec mgfSpec; private PSource pSrc; /** * Constructs a parameter set for OAEP padding as defined in the PKCS #1 * standard using the specified message digest algorithm mdName, mask * generation function algorithm mgfName, parameters for the mask generation * function mgfSpec, and source of the encoding input P pSrc. * * @param mdName the algorithm name for the message digest. * @param mgfName the algorithm name for the mask generation function. * @param mgfSpec the parameters for the mask generation function. If null is * specified, null will be returned by getMGFParameters(). * @param pSrc the source of the encoding input P. * @throws NullPointerException if mdName, mgfName, or pSrc is null. */ public OAEPParameterSpec(String mdName, String mgfName, AlgorithmParameterSpec mgfSpec, PSource pSrc) { this.mdName = mdName; this.mgfName = mgfName; this.mgfSpec = mgfSpec; this.pSrc = pSrc; } /** * Returns the message digest algorithm name. * * @return the message digest algorithm name. */ public String getDigestAlgorithm() { return mdName; } /** * Returns the mask generation function algorithm name. * * @return the mask generation function algorithm name. */ public String getMGFAlgorithm() { return mgfName; } /** * Returns the parameters for the mask generation function. * * @return the parameters for the mask generation function. */ public AlgorithmParameterSpec getMGFParameters() { return mgfSpec; } /** * Returns the source of encoding input P. * * @return the source of encoding input P. */ public PSource getPSource() { return pSrc; } }