|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--iaik.pkcs.pkcs1.PKCS1AlgorithmParameterSpec | +--iaik.pkcs.pkcs1.RSAPssSaltParameterSpec | +--iaik.pkcs.pkcs1.RSAPssParameterSpec
Algorithm parameter specification for the PKCS#1 RSASSA-PSS signature scheme.
PKCS#1v2.1 defines the following parameters for the PSS signature scheme:
RSASSA-PSS-params :: = SEQUENCE { hashAlgorithm [0] HashAlgorithm DEFAULT sha1, maskGenerationAlgorithm [1] MaskGenAlgorithm DEFAULT mgf1SHA1, saltLength [2] INTEGER DEFAULT 20, trailerField [3] TrailerField DEFAULT trailerFieldBC } HashAlgorithm ::= AlgorithmIdentifer { {OAEP-PSSDigestAlgorithms} } MaskGenAlgorithm ::= AlgorithmIdentifier { {PKCS1MGFAlgorithms} } TrailerField ::= INTEGER { trailerFieldBC(1) }By default PSS uses SHA-1 as hash function, MGF1 (with SHA-1 as hash function parameter) as mask generation algorithm, 20 as salt length, and 1 as trailer field indicating a trailer value of 0xBC.
Hash algorithm, mask generation function, and salt length value have to be
supplied when creating a creating
a RSAPssParameterSpec object. Trailer field
,
may be set later. Optionally also hash engine
and
MGF engine
may be set by the application, e.g.:
// hash and mgf algorithm ids AlgorithmID hashID = (AlgorithmID)AlgorithmID.sha1.clone(); AlgorithmID mgfID = (AlgorithmID)AlgorithmID.mgf1.clone(); mgfID.setParameter(hashID.toASN1Object()); // hash and mgf engines MessageDigest hashEngine = hashID.getMessageDigestInstance(); MaskGenerationAlgorithm mgfEngine = mfgID.getMaskGenerationAlgorithmInstance(); MGF1ParameterSpec mgf1ParamSpec = new MGF1ParameterSpec(hashID); mgf1ParamSpec.setHashEngine(hashEngine); mgfEngine.setParameters(mgf1ParamSpec); // salt length int saltLength = 20; // create the RSAPssParameterSpec RSAPssParameterSpec pssParamSpec = new RSAPssParameterSpec(hashID, mgfID, saltLength); // set engines pssParamSpec.setHashEngine(hashEngine); pssParamSpec.setMGFEngine(mgfEngine);
RSAPssParameters
,
MaskGenerationAlgorithm
,
MGF1
,
MGF1ParameterSpec
,
AlgorithmID
,
RSAPssSignature
Field Summary | |
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) |
static int |
DEFAULT_TRAILER_FIELD
Default trailer field number (1 indicating a trailer field byte of 0xBC). |
Fields inherited from class iaik.pkcs.pkcs1.RSAPssSaltParameterSpec |
DEFAULT_SALT_LENGTH, saltLength_ |
Constructor Summary | |
RSAPssParameterSpec()
Creates default RSASSA-PSS parameters. |
|
RSAPssParameterSpec(AlgorithmID hashAlgorithm,
AlgorithmID maskGenAlgorithm,
int saltLength)
Creates a RSAPssParameterSpec for the given hash algorithm, mask generation function, salt length. |
Method Summary | |
Object |
clone()
Returns a clone of this Object. |
AlgorithmID |
getHashAlgorithm()
Returns the hash algorihtm. |
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 |
getTrailerField()
Gets the trailer field. |
void |
setHashEngine(MessageDigest hashEngine)
Sets the JCA MessageDigest engine to be used for data hashing. |
void |
setMGFEngine(MaskGenerationAlgorithm mgfEngine)
Sets the MaskGenerationAlgorithm engine to be used. |
void |
setTrailerField(int trailerField)
Sets the trailer field. |
String |
toString()
Returns a string representation of this RSAPssParameterSpec. |
Methods inherited from class iaik.pkcs.pkcs1.RSAPssSaltParameterSpec |
getSaltLength |
Methods inherited from class iaik.pkcs.pkcs1.PKCS1AlgorithmParameterSpec |
getSecureRandom, setSecureRandom |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final AlgorithmID DEFAULT_HASH_ALGORITHM
public static final AlgorithmID DEFAULT_MASK_GEN_ALGORITHM
public static final int DEFAULT_TRAILER_FIELD
Constructor Detail |
public RSAPssParameterSpec()
By default PSS uses SHA-1 as hash function, MGF1 (with SHA-1 as hash function parameter) as mask generation algorithm, 20 as salt length, and 1 as trailer field indicating a trailer value of 0xBC, see (see PKCS#1v2.1:
rsaSSA-PSS-Default-Identifier RSASSA-AlgorithmIdentifier ::= { algorithm id-RSASSA-PSS, parameters RSASSA-PSS-params : { hashAlgorithm sha1, maskGenerationAlgorithm mgf1SHA1, saltLength 20, trailerField trailerFieldBC } } TrailerField ::= INTEGER { trailerFieldBC(1) }
public RSAPssParameterSpec(AlgorithmID hashAlgorithm, AlgorithmID maskGenAlgorithm, int saltLength)
hashAlgorithm
- the hash algorithm to be usedIllegalArgumentException
- if saltLength < 0, or hashAlgorithm or maskGenAlgorithm are nullMethod Detail |
public void setTrailerField(int trailerField)
trailerField
- the trailer field number as used for the parameter encodingpublic int getTrailerField()
public AlgorithmID getHashAlgorithm()
public AlgorithmID getMaskGenAlgorithm()
public void setHashEngine(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 MessageDigest getHashEngine() throws 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.
public 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 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.
public Object clone()
clone
in class Object
public String toString()
toString
in class RSAPssSaltParameterSpec
|
This Javadoc may contain text parts from Internet Standard specifications (RFC 2459, 3280, 3039, 2560, 1521, 821, 822, 2253, 1319, 1321, ,2630, 2631, 2268, 3058, 2984, 2104, 2144, 2040, 2311, 2279, see copyright note) and RSA Data Security Public-Key Cryptography Standards (PKCS#1,3,5,7,8,9,10,12, see copyright note). | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |