PKCS5S1ParametersGeneratorpublic class PKCS5S1ParametersGenerator extends org.bouncycastle.crypto.PBEParametersGenerator Generator for PBE derived keys and ivs as defined by PKCS 5 V2.0 Scheme 1.
Note this generator is limited to the size of the hash produced by the
digest used to drive it.
The document this implementation is based on can be found at
RSA's PKCS5 Page |
Fields Summary |
---|
private org.bouncycastle.crypto.Digest | digest |
Constructors Summary |
---|
public PKCS5S1ParametersGenerator(org.bouncycastle.crypto.Digest digest)Construct a PKCS 5 Scheme 1 Parameters generator.
this.digest = digest;
|
Methods Summary |
---|
private byte[] | generateDerivedKey()the derived key function, the ith hash of the password and the salt.
byte[] digestBytes = new byte[digest.getDigestSize()];
digest.update(password, 0, password.length);
digest.update(salt, 0, salt.length);
digest.doFinal(digestBytes, 0);
for (int i = 1; i < iterationCount; i++)
{
digest.update(digestBytes, 0, digestBytes.length);
digest.doFinal(digestBytes, 0);
}
return digestBytes;
| public org.bouncycastle.crypto.CipherParameters | generateDerivedMacParameters(int keySize)Generate a key parameter for use with a MAC derived from the password,
salt, and iteration count we are currently initialised with.
return generateDerivedParameters(keySize);
| public org.bouncycastle.crypto.CipherParameters | generateDerivedParameters(int keySize)Generate a key parameter derived from the password, salt, and iteration
count we are currently initialised with.
keySize = keySize / 8;
if (keySize > digest.getDigestSize())
{
throw new IllegalArgumentException(
"Can't generate a derived key " + keySize + " bytes long.");
}
byte[] dKey = generateDerivedKey();
return new KeyParameter(dKey, 0, keySize);
| public org.bouncycastle.crypto.CipherParameters | generateDerivedParameters(int keySize, int ivSize)Generate a key with initialisation vector parameter derived from
the password, salt, and iteration count we are currently initialised
with.
keySize = keySize / 8;
ivSize = ivSize / 8;
if ((keySize + ivSize) > digest.getDigestSize())
{
throw new IllegalArgumentException(
"Can't generate a derived key " + (keySize + ivSize) + " bytes long.");
}
byte[] dKey = generateDerivedKey();
return new ParametersWithIV(new KeyParameter(dKey, 0, keySize), dKey, keySize, ivSize);
|
|