RSAPublicKey ist nur eine SEQUENCE aus dem Modul und dem öffentlichen Exponenten. RSAPrivateKey enthält version, n, e, d, p, q, dP, dQ, qInv und optional weitere Primzahlen. Keine der beiden Strukturen enthält einen Algorithmusbezeichner; deshalb kann das Format nur RSA beschreiben, und deshalb muss das PEM-Label RSA nennen.
PKCS #8 verpackt dieselben Bytes von RSAPrivateKey in einer PrivateKeyInfo mit einer Algorithmus-OID (rsaEncryption, 1.2.840.113549.1.1.1), und SubjectPublicKeyInfo verpackt RSAPublicKey auf dieselbe Weise für öffentliche Schlüssel. OpenSSL 3 schreibt standardmäßig PKCS #8 (BEGIN PRIVATE KEY), auch aus openssl rsa; -traditional liefert PKCS #1. PKCS8EncodedKeySpec von Java und viele JWT-Bibliotheken akzeptieren nur PKCS #8 oder SPKI, was den bekannten Fehler bei alten Schlüsseln im Stil von id_rsa verursacht.
Verwechsle das Schlüsselformat nicht mit den Signatur- oder Verschlüsselungspaddings von PKCS #1: RFC 8017 definiert alle drei, und mit einem „Schlüssel nach PKCS #1“ ist immer nur das Dateiformat gemeint.