| Version | Name | Comments |
PKCS #1 |
2.1 | RSA Cryptography Standard[1] |
See RFC 3447. Defines the mathematical properties and format of RSA public and private keys (ASN.1-encoded in clear-text), and the basic algorithms and encoding/padding schemes for performing RSA encryption, decryption, and producing and verifying signatures. |
PKCS #2 |
- | Withdrawn | No longer active as of 2010. Covered RSA encryption of message digests; subsequently merged into PKCS #1. |
PKCS #3 |
1.4 | Diffie–Hellman Key Agreement Standard[2] |
A cryptographic protocol that allows two parties that have no prior knowledge of each other to jointly establish a shared secret key over an insecure communications channel. |
PKCS #4 |
- | Withdrawn | No longer active as of 2010. Covered RSA key syntax; subsequently merged into PKCS #1. |
PKCS #5 |
2.0 | Password-based Encryption Standard[3] |
See RFC 2898 and PBKDF2. |
PKCS #6 |
1.5 | Extended-Certificate Syntax Standard[4] |
Defines extensions to the old v1 X.509 certificate specification. Obsoleted by v3 of the same. |
PKCS #7 |
1.5 | Cryptographic Message Syntax Standard[5] |
See RFC 2315. Used to sign and/or encrypt messages under a PKI. Used also for certificate dissemination (for instance as a response to a PKCS#10 message). Formed the basis for S/MIME, which is as of 2010 based on RFC 5652, an updated Cryptographic Message Syntax Standard (CMS). Often used for single sign-on. |
PKCS #8 |
1.2 | Private-Key Information Syntax Standard[6] |
See RFC 5208. Used to carry private certificate keypairs (encrypted or unencrypted). |
PKCS #9 |
2.0 | Selected Attribute Types[7] |
See RFC 2985. Defines selected attribute types for use in PKCS #6 extended certificates, PKCS #7 digitally signed messages, PKCS #8 private-key information, and PKCS #10 certificate-signing requests. |
PKCS #10 |
1.7 | Certification Request Standard[8] |
See RFC 2986. Format of messages sent to a certification authority to request certification of a public key. See certificate signing request. |
PKCS #11 |
2.20 | Cryptographic Token Interface[9] |
Also known as "Cryptoki". An API defining a generic interface to cryptographic tokens (see also Hardware Security Module). Often used in single sign-on, public-key cryptography and disk encryption[10] systems. RSA Security has turned over further development of the PKCS#11 standard to the OASIS PKCS 11 Technical Committee. |
PKCS #12 |
1.0 | Personal Information Exchange Syntax Standard[11] |
Defines a file format commonly used to store private keys with accompanying public key certificates, protected with a password-based symmetric key. PFX is a predecessor to PKCS #12.
This container format can contain multiple embedded objects, such as multiple certificates. Usually protected/encrypted with a password. Usable as a format for the Java key store and to establish client authentication certificates in Mozilla Firefox. Usable by Apache Tomcat. |
PKCS #13 |
– | Elliptic Curve Cryptography Standard[12] |
(Under development as of 2012.)[13] |
PKCS #14 |
– | Pseudo-random Number Generation | (Under development as of 2012.)[13] |
PKCS #15 |
1.1 | Cryptographic Token Information Format Standard[14] |
Defines a standard allowing users of cryptographic tokens to identify themselves to applications, independent of the application's Cryptoki implementation (PKCS #11) or other API. RSA has relinquished IC-card-related parts of this standard to ISO/IEC 7816-15.[15] |