Class PKCS12PfxPdu

java.lang.Object
org.bouncycastle.pkcs.PKCS12PfxPdu

public class PKCS12PfxPdu extends Object
Holding class for a PKCS#12 PFX structure (RFC 7292). Supports MAC verification using the legacy PKCS#12 PBE-MAC and the PBMAC1 scheme introduced by RFC 9579.
  • Constructor Summary

    Constructors
    Constructor
    Description
    PKCS12PfxPdu(byte[] pfx)
    Parse a BER/DER encoded PFX from a byte array.
    PKCS12PfxPdu(org.bouncycastle.asn1.pkcs.Pfx pfx)
    Wrap an existing parsed PFX ASN.1 structure.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.bouncycastle.asn1.pkcs.ContentInfo[]
    Return the content infos in the AuthenticatedSafe contained in this Pfx.
    byte[]
    Return the default (BER) encoding of the PFX.
    byte[]
    getEncoded(String encoding)
    Return a Pfx with the outer wrapper encoded as asked for.
    org.bouncycastle.asn1.x509.AlgorithmIdentifier
    Return the algorithm identifier describing the MAC algorithm
    boolean
    Return whether or not there is MAC attached to this file.
    boolean
    isMacValid(PKCS12MacCalculatorBuilderProvider macCalcProviderBuilder, char[] password)
    Verify the MacData attached to the PFX is consistent with what is expected.
    org.bouncycastle.asn1.pkcs.Pfx
    Return the underlying ASN.1 object.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PKCS12PfxPdu

      public PKCS12PfxPdu(org.bouncycastle.asn1.pkcs.Pfx pfx)
      Wrap an existing parsed PFX ASN.1 structure.
      Parameters:
      pfx - the PFX to wrap.
    • PKCS12PfxPdu

      public PKCS12PfxPdu(byte[] pfx) throws IOException
      Parse a BER/DER encoded PFX from a byte array.
      Parameters:
      pfx - the encoded PFX bytes.
      Throws:
      IOException - if the data is not a valid PFX encoding.
  • Method Details

    • getContentInfos

      public org.bouncycastle.asn1.pkcs.ContentInfo[] getContentInfos()
      Return the content infos in the AuthenticatedSafe contained in this Pfx.
      Returns:
      an array of ContentInfo.
    • hasMac

      public boolean hasMac()
      Return whether or not there is MAC attached to this file.
      Returns:
      true if there is, false otherwise.
    • getMacAlgorithmID

      public org.bouncycastle.asn1.x509.AlgorithmIdentifier getMacAlgorithmID()
      Return the algorithm identifier describing the MAC algorithm
      Returns:
      the AlgorithmIdentifier representing the MAC algorithm, null if none present.
    • isMacValid

      public boolean isMacValid(PKCS12MacCalculatorBuilderProvider macCalcProviderBuilder, char[] password) throws PKCSException
      Verify the MacData attached to the PFX is consistent with what is expected.
      Parameters:
      macCalcProviderBuilder - provider builder for the calculator for the MAC
      password - password to use
      Returns:
      true if mac data is valid, false otherwise.
      Throws:
      PKCSException - if there is a problem evaluating the MAC.
      IllegalStateException - if no MAC is actually present
    • toASN1Structure

      public org.bouncycastle.asn1.pkcs.Pfx toASN1Structure()
      Return the underlying ASN.1 object.
      Returns:
      a Pfx object.
    • getEncoded

      public byte[] getEncoded() throws IOException
      Return the default (BER) encoding of the PFX.
      Returns:
      the encoded PFX bytes.
      Throws:
      IOException - if encoding fails.
    • getEncoded

      public byte[] getEncoded(String encoding) throws IOException
      Return a Pfx with the outer wrapper encoded as asked for. For example, Pfx is a usually a BER encoded object, to get one with DefiniteLength encoding use:
      getEncoded(ASN1Encoding.DL)
      
      Parameters:
      encoding - encoding style (ASN1Encoding.DER, ASN1Encoding.DL, ASN1Encoding.BER)
      Returns:
      a byte array containing the encoded object.
      Throws:
      IOException