public class JcePGPDataEncryptorBuilder extends java.lang.Object implements PGPDataEncryptorBuilder
PGPDataEncryptorBuilder
implementation that sources cryptographic primitives using the
JCE APIs.
By default, cryptographic primitives will be loaded using the default JCE load order (i.e.
without specifying a provider).
A specific provider can be specified using one of the setProvider(String)
methods.
Constructor and Description |
---|
JcePGPDataEncryptorBuilder(int encAlgorithm)
Constructs a new data encryptor builder for a specified cipher type.
|
Modifier and Type | Method and Description |
---|---|
PGPDataEncryptor |
build(byte[] keyBytes)
Builds a data encryptor using the algorithm configured for this builder.
|
int |
getAeadAlgorithm() |
int |
getAlgorithm()
The encryption algorithm used by data encryptors created by this builder.
|
int |
getChunkSize() |
java.security.SecureRandom |
getSecureRandom()
Gets the SecureRandom instance used by this builder.
|
boolean |
isV5StyleAEAD() |
JcePGPDataEncryptorBuilder |
setProvider(java.security.Provider provider)
Sets the JCE provider to source cryptographic primitives from.
|
JcePGPDataEncryptorBuilder |
setProvider(java.lang.String providerName)
Sets the JCE provider to source cryptographic primitives from.
|
JcePGPDataEncryptorBuilder |
setSecureRandom(java.security.SecureRandom random)
Provide a user defined source of randomness.
|
JcePGPDataEncryptorBuilder |
setUseV5AEAD()
Specify we are using V5 AEAD.
|
JcePGPDataEncryptorBuilder |
setUseV6AEAD()
Specify we are using V6 AEAD.
|
JcePGPDataEncryptorBuilder |
setWithAEAD(int aeadAlgorithm,
int chunkSize)
Sets whether the resulting encrypted data will be protected using an AEAD mode.
|
JcePGPDataEncryptorBuilder |
setWithIntegrityPacket(boolean withIntegrityPacket)
Sets whether or not the resulting encrypted data will be protected using an integrity packet.
|
public JcePGPDataEncryptorBuilder(int encAlgorithm)
encAlgorithm
- one of the supported symmetric cipher
algorithms
. May not be SymmetricKeyAlgorithmTags.NULL
.public JcePGPDataEncryptorBuilder setWithIntegrityPacket(boolean withIntegrityPacket)
setWithIntegrityPacket
in interface PGPDataEncryptorBuilder
withIntegrityPacket
- true if an integrity packet is to be included, false otherwise.public JcePGPDataEncryptorBuilder setWithAEAD(int aeadAlgorithm, int chunkSize)
PGPDataEncryptorBuilder
setWithAEAD
in interface PGPDataEncryptorBuilder
aeadAlgorithm
- the AEAD mode to use.chunkSize
- the size of the chunks to be processed with each nonce.public JcePGPDataEncryptorBuilder setUseV5AEAD()
PGPDataEncryptorBuilder
setUseV5AEAD
in interface PGPDataEncryptorBuilder
public JcePGPDataEncryptorBuilder setUseV6AEAD()
PGPDataEncryptorBuilder
setUseV6AEAD
in interface PGPDataEncryptorBuilder
public JcePGPDataEncryptorBuilder setProvider(java.security.Provider provider)
provider
- the JCE provider to use.public JcePGPDataEncryptorBuilder setProvider(java.lang.String providerName)
providerName
- the name of the JCE provider to use.public JcePGPDataEncryptorBuilder setSecureRandom(java.security.SecureRandom random)
If no SecureRandom is configured, a default SecureRandom will be used.
random
- the secure random to be used.public int getAlgorithm()
PGPDataEncryptorBuilder
getAlgorithm
in interface PGPDataEncryptorBuilder
symmetric encryption algorithms
.public int getAeadAlgorithm()
getAeadAlgorithm
in interface PGPDataEncryptorBuilder
public int getChunkSize()
getChunkSize
in interface PGPDataEncryptorBuilder
public boolean isV5StyleAEAD()
isV5StyleAEAD
in interface PGPDataEncryptorBuilder
public java.security.SecureRandom getSecureRandom()
PGPDataEncryptorBuilder
If a SecureRandom has not been explicitly configured, a default SecureRandom
is
constructed and retained by the this builder.
getSecureRandom
in interface PGPDataEncryptorBuilder
public PGPDataEncryptor build(byte[] keyBytes) throws PGPException
PGPDataEncryptorBuilder
build
in interface PGPDataEncryptorBuilder
keyBytes
- the bytes of the key to use for the cipher.PGPException
- if an error occurs initialising the configured encryption.