Class PKCS12Util


  • public class PKCS12Util
    extends java.lang.Object
    Utility class for re-encoding PKCS#12 files to definite length.
    • Constructor Detail

      • PKCS12Util

        public PKCS12Util()
    • Method Detail

      • convertToDefiniteLength

        public static byte[] convertToDefiniteLength​(byte[] berPKCS12File)
                                              throws java.io.IOException
        Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
        Parameters:
        berPKCS12File - - original PKCS#12 file
        Returns:
        a byte array representing the DER encoding of the PFX structure
        Throws:
        java.io.IOException
      • convertToDefiniteLength

        public static byte[] convertToDefiniteLength​(byte[] berPKCS12File,
                                                     char[] passwd,
                                                     java.lang.String provider)
                                              throws java.io.IOException
        Re-encode the PKCS#12 structure to definite length encoding at the inner layer as well, recomputing the MAC accordingly.
        Parameters:
        berPKCS12File - - original PKCS12 file.
        provider - - provider to use for MAC calculation.
        Returns:
        a byte array representing the DER encoding of the PFX structure.
        Throws:
        java.io.IOException - on parsing, encoding errors.
      • getContent

        public static ASN1Encodable getContent​(ContentInfo contentInfo)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • getContentOctets

        public static byte[] getContentOctets​(ContentInfo contentInfo)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • getEncryptedContent

        public static ASN1OctetString getEncryptedContent​(EncryptedData encryptedData)
                                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • validateIterationCount

        public static int validateIterationCount​(java.math.BigInteger ic)