…or story about trying to find all of the standards.
Being newbie in crypto is fun, a specially when you have to work with PKCS. You will be seeing this acronym everywhere. PKCS stands for “ Public Key Cryptography Standards”. They were developed by RSA Security as standards for their own, patented, algorithms, but today they are pretty much key-stone of a lot of modern cryptographic solutions. You’ve probably heard of ANSI, X9, PKIX, SET, S/MIME, SSL. They are all related or came from PKCS.
They are ugly.
They are old.
But they are everywhere, and you will have to deal with them.
And the best part, it’s very hard to find them in an easy and usable form, like PDF, or in at all working form. Half of the times links are broken, and no one replies to your email about fixing it. If it’s newer standard, like PKCS#1, then you are in luck, there is PDF. If it’s PKCS#3, you better read 120 char formatted text file. If it’s PKCS#10 v1.7, none of the links are working.
So I’ve made list, for you, my dear reader, with all of the PKCS standards in easy and readable form:
- PKCS#1 RSA Cryptography Standard v2.2 https://www.emc.com/collateral/white-papers/h11300-pkcs-1v2-2-rsa-cryptography-standard-wp.pdf
- PKCS#2 (MERGED INTO PKCS#1)
- PKCS#3 Diffie-Hellman KeyAgreement Standard v1.4 https://www.teletrust.de/fileadmin/files/oid/oid_pkcs-3v1-4.pdf
- PKCS#4 (MERGED INTO PKCS#1)
- PKCS#5 Password-based Encryption Standard v2.1 https://www.emc.com/collateral/white-papers/h11302-pkcs5v2-1-password-based-cryptography-standard-wp.pdf
- PKCS#6 Extended-Certificate Syntax Standard v1.5 http://read.pudn.com/downloads132/doc/comm/563497/PKCS/pkcs-6v1-5.pdf
- PKCS#7 Cryptographic Message Syntax Standard v1.5 https://nginx.nieman.de/PKCS/pkcs-7.pdf
- PKCS#8 Private-Key Information Syntax Standard v1.2 https://nginx.nieman.de/PKCS/pkcs-8.pdf
- PKCS#9 Selected Attribute Types v2.0 http://www.foo.be/docs/opensst/ref/pkcs/pkcs-9-v2/pkcs-9.pdf
- PKCS#10 Certification Request Standard v1.7 (ALL LINKS ARE BROKEN. WAITING FOR REPLY FROM RSALABS)
- PKCS#11 Cryptographic Token Interface v2.20 ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs-11v2-20.pdf
- PKCS#12 Personal Information Exchange Syntax Standard v1.1 https://www.emc.com/collateral/white-papers/h11301-pkcs-12v1-1-personal-information-exchange-syntax-wp.pdf
- PKCS#13 Elliptic Curve Cryptography Standard (DOES NOT EXIST)
- PKCS#14 Pseudo-random Number Generation (DOES NOT EXIST)
- PKCS#15 Cryptographic Token Information Format Standard v1.1 https://www.security-audit.com/files/pkcs-15v1_1.pdf
Hopefully that will save you few hours of search.
P.S. PLZ RSA fix it!