V běžné praxi elektronického podpisu je nutné řešit i další aspekty, než jen strukturu certifikátů (což dělá standard X.509) a způsob kódování jejich obsahu (např. DER či PEM). Třeba formát podepsaných dokumentů či datových zpráv, nebo jen formát (externích) podpisů, značek a časových razítek. Stejně tak formát certifikátů, ať již samotných či v jednom celku s odpovídajícím soukromým klíčem, nebo formát žádostí o vydání nového certifikátu a další náležitosti.
I zde jsou zapotřebí standardy, které by řekly, jak takovéto věci dělat. Jak reprezentovat různé objekty (hlavně podpisy, certifikáty a klíče) a jak je „dávat dohromady“ jednotným způsobem, který by všichni znali a všichni mu rozuměli stejně.
V praxi jsou pro tyto účely nejčastěji využívány standardy, označované společně jako PKCS (od: Public Key Cryptography Standards). V překladu: Standardy kryptografie s veřejným klíčem.
Vytvořila je jedna konkrétní komerční firma (RSA Security), ale staly se otevřeným a univerzálně používanými standardy. Jde přitom o celou rodinu dílčích standardů, které pokrývají řadu různých aspektů a jsou kvůli tomu uspořádány do disjunktních „řad“. Ty jsou odlišeny pomocí číslování. Tedy číslem, které následuje za zkratkou PKCS po znaku „#“.
Z našeho pohledu jsou zajímavé řady:
· PKCS#7: týká se formátu (podepisovaných či šifrovaných) zpráv, certifikátů či samostatných (externích) podpisů
· PKCS#10: řeší formát žádosti o vydání certifikátu (který se předává certifikační autoritě)
· PKCS#11: definuje rozhraní API k výměnným úložištím certifikátů (USB tokenům či čipovým kartám), viz část 5.1.3
· PKCS#12: řeší společné ukládání certifikátů a soukromých klíčů (jak “dát dohromady” veřejný certifikát a soukromý klíč)