The documentation of a PKCS12 implementation for Go states the following:

It is intended for decoding P12/PFX files for use with the crypto/tls package, and for encoding P12/PFX files for use by legacy applications which do not support newer formats. Since PKCS#12 uses weak encryption primitives, it SHOULD NOT be used for new applications.

I am wondering: which are the new formats succeeding PKCS12?

  • It's true that p12 use weak crypto (which seems to have been borrowed by java keystores, btw). I'm also curious what you're supposed to use instead. Sep 29, 2019 at 21:32

1 Answer 1


The documentation from the source of your citation (sslmate.org) defaults to the use of chained, PEM encoded, certificates. This is a common alternative to PKCS#12, because of its ease of use.

The justification "Since PKCS#12 uses weak encryption primitives" is incorrect in the sense that the alternative does not encrypt its content. However, usually PKCS#12 data is encrypted using a default password for its key, which does not provide more security than PEM encoded data.

  • 1
    A chain of certificates is not an alternative to PKCS12, because PKCS12 is a container format, which also does contain something different than certificates: a private key.
    – ceving
    May 3, 2019 at 6:57
  • 1
    @ceving You usually find the private key encoded in the PEM format with its associated certificate (containing the public key) appended to it, also encoded in PEM. The PEM format makes it trivially easy to append as many keys (public or private) as you wish.
    – A. Hersean
    May 3, 2019 at 8:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .