Class LegacyP12Generator

java.lang.Object
org.cryptacular.generator.AbstractP12Generator
org.cryptacular.generator.LegacyP12Generator
All Implemented Interfaces:
P12Generator

public class LegacyP12Generator extends AbstractP12Generator
Generates PKCS12 containers using DES3+SHA1 for private keys and 40-bit RC2+SHA1 for encrypted data. These algorithms are considered unsecure by today's standards (2024), but are needed for interoperability in some cases. Importing a keypair into the Mac keychain is a notable use case.
Author:
Marvin S. Addison
  • Constructor Details

    • LegacyP12Generator

      public LegacyP12Generator()
      Creates a new instance that encrypts with 1024 rounds of hashing.
    • LegacyP12Generator

      public LegacyP12Generator(int iterations)
      Creates a new instance that encrypts with the given number of hashing rounds.
      Parameters:
      iterations - Number of hashing rounds.
  • Method Details

    • getIterations

      public int getIterations()
      Specified by:
      getIterations in class AbstractP12Generator
      Returns:
      Number of hashing rounds.
    • getDigestAlgorithmId

      protected org.bouncycastle.asn1.ASN1ObjectIdentifier getDigestAlgorithmId()
      Specified by:
      getDigestAlgorithmId in class AbstractP12Generator
      Returns:
      Digest algorithm object identifier.
    • getDigestSpec

      protected DigestSpec getDigestSpec()
      Specified by:
      getDigestSpec in class AbstractP12Generator
      Returns:
      Digest specification.
    • keyOutputEncryptor

      protected org.bouncycastle.operator.OutputEncryptor keyOutputEncryptor(char[] password)
      Description copied from class: AbstractP12Generator
      Builds a new output encryptor that performs password-based encryption on keys in the P12 file.
      Specified by:
      keyOutputEncryptor in class AbstractP12Generator
      Parameters:
      password - Password tha will the basis of an encryption key.
      Returns:
      Output encryptor.
    • dataOutputEncryptor

      protected org.bouncycastle.operator.OutputEncryptor dataOutputEncryptor(char[] password)
      Description copied from class: AbstractP12Generator
      Builds a new output encryptor that performs password-based encryption on encrypted data in the P12 file.
      Specified by:
      dataOutputEncryptor in class AbstractP12Generator
      Parameters:
      password - Password tha will the basis of an encryption key.
      Returns:
      Output encryptor.