Bouncy Castle Cryptography Library 1.79

org.bouncycastle.openpgp.operator.jcajce
Class JcePGPDataEncryptorBuilder

java.lang.Object
  |
  +--org.bouncycastle.openpgp.operator.jcajce.JcePGPDataEncryptorBuilder
All Implemented Interfaces:
PGPDataEncryptorBuilder

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 Summary
JcePGPDataEncryptorBuilder(int encAlgorithm)
          Constructs a new data encryptor builder for a specified cipher type.
 
Method Summary
 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.
 PGPDataEncryptorBuilder setUseV5AEAD()
          Specify we are using V5 AEAD.
 PGPDataEncryptorBuilder setUseV6AEAD()
          Specify we are using V6 AEAD.
 PGPDataEncryptorBuilder setWithAEAD(int aeadAlgorithm, int chunkSize)
          Sets whether the resulting encrypted data will be protected using an AEAD mode.
 PGPDataEncryptorBuilder setWithIntegrityPacket(boolean withIntegrityPacket)
          Sets whether or not the resulting encrypted data will be protected using an integrity packet.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JcePGPDataEncryptorBuilder

public JcePGPDataEncryptorBuilder(int encAlgorithm)
Constructs a new data encryptor builder for a specified cipher type.
Parameters:
encAlgorithm - one of the supported symmetric cipher algorithms. May not be SymmetricKeyAlgorithmTags.NULL.
Method Detail

setWithIntegrityPacket

public PGPDataEncryptorBuilder setWithIntegrityPacket(boolean withIntegrityPacket)
Sets whether or not the resulting encrypted data will be protected using an integrity packet.
Specified by:
setWithIntegrityPacket in interface PGPDataEncryptorBuilder
Parameters:
withIntegrityPacket - true if an integrity packet is to be included, false otherwise.
Returns:
the current builder.

setWithAEAD

public PGPDataEncryptorBuilder setWithAEAD(int aeadAlgorithm,
                                           int chunkSize)
Description copied from interface: PGPDataEncryptorBuilder
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 interface PGPDataEncryptorBuilder
Following copied from interface: org.bouncycastle.openpgp.operator.PGPDataEncryptorBuilder
Parameters:
aeadAlgorithm - the AEAD mode to use.
chunkSize - the size of the chunks to be processed with each nonce.
Returns:
the current builder

setUseV5AEAD

public PGPDataEncryptorBuilder setUseV5AEAD()
Description copied from interface: PGPDataEncryptorBuilder
Specify we are using V5 AEAD.
Specified by:
setUseV5AEAD in interface PGPDataEncryptorBuilder
Following copied from interface: org.bouncycastle.openpgp.operator.PGPDataEncryptorBuilder
Returns:
the current builder

setUseV6AEAD

public PGPDataEncryptorBuilder setUseV6AEAD()
Description copied from interface: PGPDataEncryptorBuilder
Specify we are using V6 AEAD.
Specified by:
setUseV6AEAD in interface PGPDataEncryptorBuilder
Following copied from interface: org.bouncycastle.openpgp.operator.PGPDataEncryptorBuilder
Returns:
the current builder

setProvider

public JcePGPDataEncryptorBuilder setProvider(java.security.Provider provider)
Sets the JCE provider to source cryptographic primitives from.
Parameters:
provider - the JCE provider to use.
Returns:
the current builder.

setProvider

public JcePGPDataEncryptorBuilder setProvider(java.lang.String providerName)
Sets the JCE provider to source cryptographic primitives from.
Parameters:
providerName - the name of the JCE provider to use.
Returns:
the current builder.

setSecureRandom

public JcePGPDataEncryptorBuilder 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 interface PGPDataEncryptorBuilder
Following copied from interface: org.bouncycastle.openpgp.operator.PGPDataEncryptorBuilder
Returns:
one of the symmetric encryption algorithms.

getAeadAlgorithm

public int getAeadAlgorithm()
Specified by:
getAeadAlgorithm in interface PGPDataEncryptorBuilder

getChunkSize

public int getChunkSize()
Specified by:
getChunkSize in interface PGPDataEncryptorBuilder

isV5StyleAEAD

public boolean isV5StyleAEAD()
Specified by:
isV5StyleAEAD in interface PGPDataEncryptorBuilder

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 interface PGPDataEncryptorBuilder

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 interface PGPDataEncryptorBuilder
Following copied from interface: org.bouncycastle.openpgp.operator.PGPDataEncryptorBuilder
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.

Bouncy Castle Cryptography Library 1.79