Class BcPGPDataEncryptorBuilder
- java.lang.Object
-
- org.bouncycastle.openpgp.operator.bc.BcPGPDataEncryptorBuilder
-
- All Implemented Interfaces:
PGPDataEncryptorBuilder
public class BcPGPDataEncryptorBuilder extends java.lang.Object implements PGPDataEncryptorBuilder
PGPDataEncryptorBuilder
implementation that uses the Bouncy Castle lightweight API to implement cryptographic primitives.
-
-
Constructor Summary
Constructors Constructor Description BcPGPDataEncryptorBuilder(int encAlgorithm)
Constructs a new data encryptor builder for a specified cipher type.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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()
BcPGPDataEncryptorBuilder
setSecureRandom(java.security.SecureRandom random)
Provide a user defined source of randomness.BcPGPDataEncryptorBuilder
setUseV5AEAD()
Specify we are using V5 AEAD.BcPGPDataEncryptorBuilder
setUseV6AEAD()
Specify we are using V6 AEAD.BcPGPDataEncryptorBuilder
setWithAEAD(int aeadAlgorithm, int chunkSize)
Sets whether the resulting encrypted data will be protected using an AEAD mode.BcPGPDataEncryptorBuilder
setWithIntegrityPacket(boolean withIntegrityPacket)
Sets whether the resulting encrypted data will be protected using an integrity packet.
-
-
-
Constructor Detail
-
BcPGPDataEncryptorBuilder
public BcPGPDataEncryptorBuilder(int encAlgorithm)
Constructs a new data encryptor builder for a specified cipher type.- Parameters:
encAlgorithm
- one of thesupported symmetric cipher algorithms
. May not beSymmetricKeyAlgorithmTags.NULL
.
-
-
Method Detail
-
setWithIntegrityPacket
public BcPGPDataEncryptorBuilder setWithIntegrityPacket(boolean withIntegrityPacket)
Sets whether the resulting encrypted data will be protected using an integrity packet.- Specified by:
setWithIntegrityPacket
in interfacePGPDataEncryptorBuilder
- Parameters:
withIntegrityPacket
- true if an integrity packet is to be included, false otherwise.- Returns:
- the current builder.
-
setUseV5AEAD
public BcPGPDataEncryptorBuilder setUseV5AEAD()
Description copied from interface:PGPDataEncryptorBuilder
Specify we are using V5 AEAD.- Specified by:
setUseV5AEAD
in interfacePGPDataEncryptorBuilder
- Returns:
- the current builder
-
setUseV6AEAD
public BcPGPDataEncryptorBuilder setUseV6AEAD()
Description copied from interface:PGPDataEncryptorBuilder
Specify we are using V6 AEAD.- Specified by:
setUseV6AEAD
in interfacePGPDataEncryptorBuilder
- Returns:
- the current builder
-
setWithAEAD
public BcPGPDataEncryptorBuilder setWithAEAD(int aeadAlgorithm, int chunkSize)
Sets whether the resulting encrypted data will be protected using an AEAD mode.The chunkSize is used as a power of two, result in blocks (1 << chunkSize) containing data with an extra 16 bytes for the tag. The minimum chunkSize is 6.
- Specified by:
setWithAEAD
in interfacePGPDataEncryptorBuilder
- Parameters:
aeadAlgorithm
- the AEAD mode to use.chunkSize
- the size of the chunks to be processed with each nonce.- Returns:
- builder
-
setSecureRandom
public BcPGPDataEncryptorBuilder setSecureRandom(java.security.SecureRandom random)
Provide a user defined source of randomness.If no SecureRandom is configured, a default SecureRandom will be used.
- Parameters:
random
- the secure random to be used.- Returns:
- the current builder.
-
getAlgorithm
public int getAlgorithm()
Description copied from interface:PGPDataEncryptorBuilder
The encryption algorithm used by data encryptors created by this builder.- Specified by:
getAlgorithm
in interfacePGPDataEncryptorBuilder
- Returns:
- one of the
symmetric encryption algorithms
.
-
getAeadAlgorithm
public int getAeadAlgorithm()
- Specified by:
getAeadAlgorithm
in interfacePGPDataEncryptorBuilder
-
getChunkSize
public int getChunkSize()
- Specified by:
getChunkSize
in interfacePGPDataEncryptorBuilder
-
isV5StyleAEAD
public boolean isV5StyleAEAD()
- Specified by:
isV5StyleAEAD
in interfacePGPDataEncryptorBuilder
-
getSecureRandom
public java.security.SecureRandom getSecureRandom()
Description copied from interface:PGPDataEncryptorBuilder
Gets the SecureRandom instance used by this builder.If a SecureRandom has not been explicitly configured, a default
SecureRandom
is constructed and retained by the this builder.- Specified by:
getSecureRandom
in interfacePGPDataEncryptorBuilder
-
build
public PGPDataEncryptor build(byte[] keyBytes) throws PGPException
Description copied from interface:PGPDataEncryptorBuilder
Builds a data encryptor using the algorithm configured for this builder.- Specified by:
build
in interfacePGPDataEncryptorBuilder
- Parameters:
keyBytes
- the bytes of the key to use for the cipher.- Returns:
- a data encryptor with an initialised cipher.
- Throws:
PGPException
- if an error occurs initialising the configured encryption.
-
-