Class PBEKeyEncryptionMethodGenerator
java.lang.Object
org.bouncycastle.openpgp.operator.PGPKeyEncryptionMethodGenerator
org.bouncycastle.openpgp.operator.PBEKeyEncryptionMethodGenerator
- Direct Known Subclasses:
BcPBEKeyEncryptionMethodGenerator
,JcePBEKeyEncryptionMethodGenerator
PGP style PBE encryption method.
A pass phrase is used to generate an encryption key using the PGP string-to-key
method. This class always uses the salted and iterated form of the
S2K algorithm
.
Note that the iteration count provided to this method is a single byte as described by the
S2K
algorithm, and the actual iteration count ranges exponentially from
0x01
== 1088 to 0xFF
== 65,011,712.
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
PBEKeyEncryptionMethodGenerator
(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator) Construct a PBE key generator using the default iteration count (0x60
== 65536 iterations).protected
PBEKeyEncryptionMethodGenerator
(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator, int s2kCount) Construct a PBE key generator using a specific iteration level. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract byte[]
encryptSessionInfo
(int encAlgorithm, byte[] key, byte[] sessionInfo) generate
(int encAlgorithm, byte[] sessionInfo) Generates a packet encoding the details of this encryption method.byte[]
getKey
(int encAlgorithm) Generate a key for a symmetric encryption algorithm using the PBE configuration in this method.setSecureRandom
(SecureRandom random) Sets a user defined source of randomness.
-
Constructor Details
-
PBEKeyEncryptionMethodGenerator
protected PBEKeyEncryptionMethodGenerator(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator) Construct a PBE key generator using the default iteration count (0x60
== 65536 iterations).- Parameters:
passPhrase
- the pass phrase to encrypt with.s2kDigestCalculator
- a digest calculator to use in the string-to-key function.
-
PBEKeyEncryptionMethodGenerator
protected PBEKeyEncryptionMethodGenerator(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator, int s2kCount) Construct a PBE key generator using a specific iteration level.- Parameters:
passPhrase
- the pass phrase to encrypt with.s2kDigestCalculator
- a digest calculator to use in the string-to-key function.s2kCount
- a single byteS2K
iteration count specifier, which is translated to an actual iteration count by the S2K class.
-
-
Method Details
-
setSecureRandom
Sets a user defined source of randomness.If no SecureRandom is configured, a default SecureRandom will be used.
- Returns:
- the current generator.
-
getKey
Generate a key for a symmetric encryption algorithm using the PBE configuration in this method.- Parameters:
encAlgorithm
- theencryption algorithm
to generate the key for.- Returns:
- the bytes of the generated key.
- Throws:
PGPException
- if an error occurs performing the string-to-key generation.
-
generate
Description copied from class:PGPKeyEncryptionMethodGenerator
Generates a packet encoding the details of this encryption method.- Specified by:
generate
in classPGPKeyEncryptionMethodGenerator
- Parameters:
encAlgorithm
- theencryption algorithm
being usedsessionInfo
- session data generated by the encrypted data generator.- Returns:
- a packet encoding the provided information and the configuration of this instance.
- Throws:
PGPException
- if an error occurs constructing the packet.
-
encryptSessionInfo
protected abstract byte[] encryptSessionInfo(int encAlgorithm, byte[] key, byte[] sessionInfo) throws PGPException - Throws:
PGPException
-