Bouncy Castle Cryptography Library 1.81

org.bouncycastle.openpgp.operator.jcajce
Class JcePBEKeyEncryptionMethodGenerator

java.lang.Object
  extended byorg.bouncycastle.openpgp.operator.PBEKeyEncryptionMethodGenerator
      extended byorg.bouncycastle.openpgp.operator.jcajce.JcePBEKeyEncryptionMethodGenerator
All Implemented Interfaces:
PGPKeyEncryptionMethodGenerator

public class JcePBEKeyEncryptionMethodGenerator
extends PBEKeyEncryptionMethodGenerator

JCE based generator for password based encryption (PBE) data protection methods.


Constructor Summary
JcePBEKeyEncryptionMethodGenerator(char[] passPhrase)
          Create a PBE encryption method generator using the default SHA-1 digest and the default S2K count for key generation.
JcePBEKeyEncryptionMethodGenerator(char[] passPhrase, int s2kCount)
          Create a PBE encryption method generator using the default SHA-1 digest calculator and a S2K count other than the default for key generation.
JcePBEKeyEncryptionMethodGenerator(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator)
          Create a PBE encryption method generator using the provided digest and the default S2K count for key generation.
JcePBEKeyEncryptionMethodGenerator(char[] passPhrase, PGPDigestCalculator s2kDigestCalculator, int s2kCount)
          Create a PBE encryption method generator using the provided calculator and S2K count for key generation.
JcePBEKeyEncryptionMethodGenerator(char[] passPhrase, S2K.Argon2Params params)
           
 
Method Summary
protected  byte[] encryptSessionInfo(int encAlgorithm, byte[] key, byte[] sessionInfo)
           
protected  byte[] generateV6KEK(int kekAlgorithm, byte[] ikm, byte[] info)
           
protected  byte[] getEskAndTag(int kekAlgorithm, int aeadAlgorithm, byte[] sessionKey, byte[] key, byte[] iv, byte[] info)
           
 JcePBEKeyEncryptionMethodGenerator setProvider(java.security.Provider provider)
          Sets the JCE provider to source cryptographic primitives from.
 JcePBEKeyEncryptionMethodGenerator setProvider(java.lang.String providerName)
          Sets the JCE provider to source cryptographic primitives from.
 PBEKeyEncryptionMethodGenerator setSecureRandom(java.security.SecureRandom random)
          Sets a user defined source of randomness.
 
Methods inherited from class org.bouncycastle.openpgp.operator.PBEKeyEncryptionMethodGenerator
generate, getKey, getSessionKeyWrapperAlgorithm, setSessionKeyWrapperAlgorithm
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JcePBEKeyEncryptionMethodGenerator

public JcePBEKeyEncryptionMethodGenerator(char[] passPhrase,
                                          PGPDigestCalculator s2kDigestCalculator)
Create a PBE encryption method generator using the provided digest and the default S2K count for key generation.

Parameters:
passPhrase - the passphrase to use as the primary source of key material.
s2kDigestCalculator - the digest calculator to use for key calculation.

JcePBEKeyEncryptionMethodGenerator

public JcePBEKeyEncryptionMethodGenerator(char[] passPhrase)
Create a PBE encryption method generator using the default SHA-1 digest and the default S2K count for key generation.

Parameters:
passPhrase - the passphrase to use as the primary source of key material.

JcePBEKeyEncryptionMethodGenerator

public JcePBEKeyEncryptionMethodGenerator(char[] passPhrase,
                                          PGPDigestCalculator s2kDigestCalculator,
                                          int s2kCount)
Create a PBE encryption method generator using the provided calculator and S2K count for key generation.

Parameters:
passPhrase - the passphrase to use as the primary source of key material.
s2kDigestCalculator - the digest calculator to use for key calculation.
s2kCount - the single byte S2K count to use.

JcePBEKeyEncryptionMethodGenerator

public JcePBEKeyEncryptionMethodGenerator(char[] passPhrase,
                                          int s2kCount)
Create a PBE encryption method generator using the default SHA-1 digest calculator and a S2K count other than the default for key generation.

Parameters:
passPhrase - the passphrase to use as the primary source of key material.
s2kCount - the single byte S2K count to use.

JcePBEKeyEncryptionMethodGenerator

public JcePBEKeyEncryptionMethodGenerator(char[] passPhrase,
                                          S2K.Argon2Params params)
Method Detail

setProvider

public JcePBEKeyEncryptionMethodGenerator setProvider(java.security.Provider provider)
Sets the JCE provider to source cryptographic primitives from.

Parameters:
provider - the JCE provider to use.
Returns:
the current generator.

setProvider

public JcePBEKeyEncryptionMethodGenerator 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 generator.

setSecureRandom

public PBEKeyEncryptionMethodGenerator setSecureRandom(java.security.SecureRandom random)
Description copied from class: PBEKeyEncryptionMethodGenerator
Sets a user defined source of randomness.

If no SecureRandom is configured, a default SecureRandom will be used.

Overrides:
setSecureRandom in class PBEKeyEncryptionMethodGenerator
Returns:
the current generator.

encryptSessionInfo

protected byte[] encryptSessionInfo(int encAlgorithm,
                                    byte[] key,
                                    byte[] sessionInfo)
                             throws PGPException
Specified by:
encryptSessionInfo in class PBEKeyEncryptionMethodGenerator
Throws:
PGPException

generateV6KEK

protected byte[] generateV6KEK(int kekAlgorithm,
                               byte[] ikm,
                               byte[] info)
Specified by:
generateV6KEK in class PBEKeyEncryptionMethodGenerator

getEskAndTag

protected byte[] getEskAndTag(int kekAlgorithm,
                              int aeadAlgorithm,
                              byte[] sessionKey,
                              byte[] key,
                              byte[] iv,
                              byte[] info)
                       throws PGPException
Specified by:
getEskAndTag in class PBEKeyEncryptionMethodGenerator
Throws:
PGPException

Bouncy Castle Cryptography Library 1.81