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
PGPKeyEncryptionMethodGeneratorgenerate in class PGPKeyEncryptionMethodGeneratorencAlgorithm - 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