Dato una chiave privata o pubblica codificata arbitraria all'interno di un PEM, con il pre-encapsulation boundary
e post-encapsulation boundaries
intatto, è possibile sapere esattamente quale formato prendono i byte (cioè sono OpenSSL tradizionali, PKCS8, X.509 SubjectPublicKeyInfo
, ecc.) o è necessario disporre di alcune informazioni a priori per decodificarle correttamente?Dato un documento PEM, è possibile conoscere il formato dei byte da esso, o ha bisogno di informazioni a priori?
risposta
Con i certificati la situazione è quasi immediata: la linea di confine specifica ciò che è previsto (un certificato o una chiave privata).
Nei dati blindati OpenPGP la linea di confine indica anche cosa è previsto: la (e) chiave (i) oi dati.
Le chiavi SSH create da più applicazioni SSH hanno le stesse linee di confine ma un diverso formato della chiave stessa. Quindi devi provare a leggere i dati in tutti i formati previsti.
Le chiavi pubbliche RSA di solito hanno il formato RSA 1.5 in modo da poter presumere di avere una chiave RSA.
PKCS # 12 non viene in genere spostato su PEM (non ho mai visto tali file). Lo stesso vale per PKCS8.
Gli archivi del certificato PKCS # 7 sono talvolta codificati PEM e hanno qualcosa come BEGIN CERTIFICATE STORAGE nella loro linea di confine.
Per riassumere - in una certa misura è possibile fare affidamento sul testo della linea di confine, ma questo non ti dà una garanzia al 100%.
Il limite "INIZIA QUALCOSA" è un suggerimento che il contenuto è probabilmente QUALCOSA, ma non è vincolante, il che significa che il lettore PEM non deve assumere il contenuto specifico basato sul titolo del contorno e deve semplicemente utilizzare il limite per, limiti del documento. –