public abstract class PBEKeyEncryptionMethodGenerator extends PGPKeyEncryptionMethodGenerator
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.
Modifier | Constructor and Description |
---|---|
protected |
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.
|
Modifier and Type | Method and Description |
---|---|
protected abstract byte[] |
encryptSessionInfo(int encAlgorithm,
byte[] key,
byte[] sessionInfo) |
ContainedPacket |
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.
|
PBEKeyEncryptionMethodGenerator |
setSecureRandom(java.security.SecureRandom random)
Sets a user defined source of randomness.
|
protected PBEKeyEncryptionMethodGenerator(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator)
0x60
== 65536
iterations).passPhrase
- the pass phrase to encrypt with.s2kDigestCalculator
- a digest calculator to use in the string-to-key function.protected PBEKeyEncryptionMethodGenerator(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator, int s2kCount)
passPhrase
- the pass phrase to encrypt with.s2kDigestCalculator
- a digest calculator to use in the string-to-key function.s2kCount
- a single byte S2K
iteration count specifier, which is translated to
an actual iteration count by the S2K class.public PBEKeyEncryptionMethodGenerator setSecureRandom(java.security.SecureRandom random)
If no SecureRandom is configured, a default SecureRandom will be used.
public byte[] getKey(int encAlgorithm) throws PGPException
encAlgorithm
- the encryption algorithm
to generate
the key for.PGPException
- if an error occurs performing the string-to-key generation.public ContainedPacket generate(int encAlgorithm, byte[] sessionInfo) throws PGPException
PGPKeyEncryptionMethodGenerator
generate
in class PGPKeyEncryptionMethodGenerator
encAlgorithm
- the encryption algorithm
being usedsessionInfo
- session data generated by the encrypted data generator.PGPException
- if an error occurs constructing the packet.protected abstract byte[] encryptSessionInfo(int encAlgorithm, byte[] key, byte[] sessionInfo) throws PGPException
PGPException