Class OpenSSLPBEParametersGenerator
java.lang.Object
org.bouncycastle.crypto.PBEParametersGenerator
org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator
Generator for PBE derived keys and ivs as usd by OpenSSL.
Originally this scheme was a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1. The default digest was changed to SHA-256 with OpenSSL 1.1.0. This implementation still defaults to MD5, but the digest can now be set.
-
Field Summary
Fields inherited from class org.bouncycastle.crypto.PBEParametersGenerator
iterationCount, password, salt
-
Constructor Summary
ConstructorsConstructorDescriptionConstruct a OpenSSL Parameters generator - digest the original MD5.OpenSSLPBEParametersGenerator
(Digest digest) Construct a OpenSSL Parameters generator - digest as specified. -
Method Summary
Modifier and TypeMethodDescriptiongenerateDerivedMacParameters
(int keySize) Generate a key parameter for use with a MAC derived from the password, salt, and iteration count we are currently initialised with.generateDerivedParameters
(int keySize) Generate a key parameter derived from the password, salt, and iteration count we are currently initialised with.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.void
init
(byte[] password, byte[] salt) Initialise - note the iteration count for this algorithm is fixed at 1.Methods inherited from class org.bouncycastle.crypto.PBEParametersGenerator
getIterationCount, getPassword, getSalt, init, PKCS12PasswordToBytes, PKCS5PasswordToBytes, PKCS5PasswordToUTF8Bytes
-
Constructor Details
-
OpenSSLPBEParametersGenerator
public OpenSSLPBEParametersGenerator()Construct a OpenSSL Parameters generator - digest the original MD5. -
OpenSSLPBEParametersGenerator
Construct a OpenSSL Parameters generator - digest as specified.- Parameters:
digest
- the digest to use as the PRF.
-
-
Method Details
-
init
public void init(byte[] password, byte[] salt) Initialise - note the iteration count for this algorithm is fixed at 1.- Parameters:
password
- password to use.salt
- salt to use.
-
generateDerivedParameters
Generate a key parameter derived from the password, salt, and iteration count we are currently initialised with.- Specified by:
generateDerivedParameters
in classPBEParametersGenerator
- Parameters:
keySize
- the size of the key we want (in bits)- Returns:
- a KeyParameter object.
- Throws:
IllegalArgumentException
- if the key length larger than the base hash size.
-
generateDerivedParameters
Generate a key with initialisation vector parameter derived from the password, salt, and iteration count we are currently initialised with.- Specified by:
generateDerivedParameters
in classPBEParametersGenerator
- Parameters:
keySize
- the size of the key we want (in bits)ivSize
- the size of the iv we want (in bits)- Returns:
- a ParametersWithIV object.
- Throws:
IllegalArgumentException
- if keySize + ivSize is larger than the base hash size.
-
generateDerivedMacParameters
Generate a key parameter for use with a MAC derived from the password, salt, and iteration count we are currently initialised with.- Specified by:
generateDerivedMacParameters
in classPBEParametersGenerator
- Parameters:
keySize
- the size of the key we want (in bits)- Returns:
- a KeyParameter object.
- Throws:
IllegalArgumentException
- if the key length larger than the base hash size.
-