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.voidinit(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:
generateDerivedParametersin 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:
generateDerivedParametersin 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:
generateDerivedMacParametersin 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.
-