public class RSAOaepParameterSpec extends RSAOaepPSourceParameterSpec implements java.lang.Cloneable
PKCS#1v2.1 defines the following parameters for the OAEP encryption scheme:
RSASES-OAEP-params :: = SEQUENCE {
hashAlgorithm [0] HashAlgorithm DEFAULT sha1,
maskGenerationAlgorithm [1] MaskGenAlgorithm DEFAULT mgf1SHA1,
pSourceAlgorithm [2] PSourceAlgorithm DEFAULT pSpecifiedEmpty,
}
HashAlgorithm ::= Algorithmidentifier { {OAEP-PSSDigestAlgorithms} }
MaskGenAlgorithm ::= AlgorithmIdentifier { {PKCS1MGFAlgorithms} }
PSourceAlgorithm ::= AlgorithmIdentifier { {PKCS1PSourceAlgorithms} }
By default OAEP uses SHA-1 as hash function, MGF1 (with SHA-1 as hash
function parameter) as mask generation algorithm, and id-pSpecified as
PSourceAlgorithm (with an empty OCTET STRING as parameter).
Hash algorithm, mask generation function, and PSourceAlgorithm have to be
supplied when creating a
creating
a RSAOaepParameterSpec object, e.g.:
// hash, mgf and pSource algorithm ids
AlgorithmID hashID = (AlgorithmID) AlgorithmID.sha1.clone();
AlgorithmID mgfID = (AlgorithmID) AlgorithmID.mgf1.clone();
mgfID.setParameter(hashID.toASN1Object());
AlgorithmID pSourceID = (AlgorithmID) AlgorithmID.pSpecified.clone();
pSourceID.setParameter(new OCTET_STRING());
// hash and mgf engines
MessageDigest hashEngine = hashID.getMessageDigestInstance();
MaskGenerationAlgorithm mgfEngine = mgfID.getMaskGenerationAlgorithmInstance();
MGF1ParameterSpec mgf1ParamSpec = new MGF1ParameterSpec(hashID);
mgf1ParamSpec.setHashEngine(hashEngine);
mgfEngine.setParameters(mgf1ParamSpec);
// create the RSAOaepParameterSpec
RSAOaepParameterSpec oaepParamSpec = new RSAOaepParameterSpec(hashID, mgfID,
pSourceID);
// set engines
oaepParamSpec.setHashEngine(hashEngine);
oaepParamSpec.setMGFEngine(mgfEngine);
RSAOaepParameters,
MaskGenerationAlgorithm,
MGF1,
MGF1ParameterSpec,
RSACipher,
AlgorithmID,
OCTET_STRING| Modifier and Type | Field and Description |
|---|---|
static AlgorithmID |
DEFAULT_HASH_ALGORITHM
Default hash algorithm (SHA-1).
|
static AlgorithmID |
DEFAULT_MASK_GEN_ALGORITHM
Default mask generation algorithm (MGF1 with SHA1 as hash algorithm)
|
DEFAULT_PSOURCE_ALGORITHM, pSourceAlgorithm_| Constructor and Description |
|---|
RSAOaepParameterSpec()
Creates default RSAES-OAEP parameters.
|
RSAOaepParameterSpec(AlgorithmID hashAlgorithm,
AlgorithmID maskGenAlgorithm,
AlgorithmID pSourceAlgorithm)
Creates a RSAOaepParameterSpec for the given hash algorithm, mask
generation function, and pSource algorithm.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.Object |
clone()
Returns a clone of this Object.
|
boolean |
equals(java.lang.Object obj)
Compares this RSAOaepParameterSpec object with the supplied object.
|
java.lang.Boolean |
getEncodeDefaultValues()
This method shows if parameter values should be encoded even if they have
the default values; e.g.
|
AlgorithmID |
getHashAlgorithm()
Returns the hash algorithm.
|
java.security.MessageDigest |
getHashEngine()
Gets the JCA MessageDigest engine used for data hashing.
|
AlgorithmID |
getMaskGenAlgorithm()
Gets the mask generation algorithm.
|
MaskGenerationAlgorithm |
getMGFEngine()
Gets the MaskGenerationAlgorithm engine.
|
int |
hashCode()
Gets a hash code for this object.
|
void |
setEncodeDefaultValues(java.lang.Boolean encode)
With this method, the application can define that parameter values should
be encoded even if they have the default values; e.g.
|
void |
setHashEngine(java.security.MessageDigest hashEngine)
Sets the JCA MessageDigest engine to be used for data hashing.
|
void |
setMGFEngine(MaskGenerationAlgorithm mgfEngine)
Sets the MaskGenerationAlgorithm engine to be used.
|
java.lang.String |
toString()
Returns a string representation of this RSAOaepParameterSpec.
|
getDefault, getLabel, getPSourceAlgorithm, setLabelgetSecureRandom, setSecureRandompublic static final AlgorithmID DEFAULT_HASH_ALGORITHM
public static final AlgorithmID DEFAULT_MASK_GEN_ALGORITHM
public RSAOaepParameterSpec()
By default OAEP uses SHA-1 as hash function, MGF1 (with SHA-1 as hash function parameter) as mask generation algorithm, and id-pSpecified as PSourceAlgorithm (with an empty OCTET STRING as parameter), see (see PKCS#1v2.1:
RSASES-OAEP-params :: = SEQUENCE {
hashAlgorithm [0] HashAlgorithm DEFAULT sha1,
maskGenerationAlgorithm [1] MaskGenAlgorithm DEFAULT mgf1SHA1,
pSourceAlgorithm [2] PSourceAlgorithm DEFAULT pSpecifiedEmpty,
}
HashAlgorithm ::= Algorithmidentifier { {OAEP-PSSDigestAlgorithms} }
MaskGenAlgorithm ::= AlgorithmIdentifier { {PKCS1MGFAlgorithms} }
PSourceAlgorithm ::= AlgorithmIdentifier { {PKCS1PSourceAlgorithms} }
public RSAOaepParameterSpec(AlgorithmID hashAlgorithm, AlgorithmID maskGenAlgorithm, AlgorithmID pSourceAlgorithm)
hashAlgorithm - the hash algorithm to be usedjava.lang.IllegalArgumentException - if hashAlgorithm or maskGenAlgorithm or pSourceAlgorithm are
nullpublic AlgorithmID getHashAlgorithm()
public AlgorithmID getMaskGenAlgorithm()
public void setHashEngine(java.security.MessageDigest hashEngine)
This method may be used to set a JCA MessageDigest engine to be used for
doing the any required hashing operations. If not set by this method,
getHashEngine will try to create a MessageDigest
engine from the hash algorithm id.
hashEngine - the JCA MessageDigest engine to be usedpublic java.security.MessageDigest getHashEngine()
throws java.security.NoSuchAlgorithmException
If method setHashEngine has been used to set a
MessageDigest engine, this engine is returned; otherwise it is tried to
create a MessageDigest engine from the hash algorithm id.
java.security.NoSuchAlgorithmExceptionpublic void setMGFEngine(MaskGenerationAlgorithm mgfEngine)
This method may be used to set a MaskGenerationAlgorithm engine. If not set
by this method, getMGFEngine will try to create a
MaskGenerationAlgorithm engine from the mask generation algorithm id.
mgfEngine - the MaskGenerationAlgorithm engine to be usedpublic MaskGenerationAlgorithm getMGFEngine() throws java.security.NoSuchAlgorithmException
If method setMGFEngine has been used to set a MGF
engine, this engine is returned; otherwise it is tried to create a MGF
engine from the Mask generation algorithm id.
java.security.NoSuchAlgorithmExceptionpublic void setEncodeDefaultValues(java.lang.Boolean encode)
Note that these settings have higher priority than those given by the
RSAOaepParameters.getEncodeDefaultValues().
Note that only a value of false results in a fully correct DER
encoding, because DER encoding required default values to be omitted.
encode - Boolean.TRUE to encode default values,
Boolean.False to omit default values in the encoding.
Set to null to use the current setting of
RSAOaepParameters.getEncodeDefaultValues()RSAOaepParameters.setEncodeDefaultValues(boolean),
RSAOaepParameters.getEncodeDefaultValues()public java.lang.Boolean getEncodeDefaultValues()
Note that these settings have higher priority than those given by the
RSAOaepParameters.getEncodeDefaultValues().
Note that only a value of false results in a fully correct DER
encoding, because DER encoding required default values to be omitted.
true if default values are encoded, false
if they are omitted in the encoding.setEncodeDefaultValues(Boolean),
RSAOaepParameters.setEncodeDefaultValues(boolean),
RSAOaepParameters.getEncodeDefaultValues()public java.lang.Object clone()
clone in class java.lang.Objectpublic int hashCode()
hashCode in class RSAOaepPSourceParameterSpecpublic boolean equals(java.lang.Object obj)
equals in class RSAOaepPSourceParameterSpecobj - the object to be comparedtrue if the two objects are RSAOaepParameterSpec
objects with same hash, mgf and pSource id; false
otherwisepublic java.lang.String toString()
toString in class RSAOaepPSourceParameterSpec