A quale offset è la chiave pubblica in una catena di certificati codificati DER?

-1

Ho il seguente array di byte che memorizza una catena di certificati (codificata DER):

3082020B3081F4A003020102020500A95AEE5F300D06092A864886F70D01010B0500301C311A301806035504031311544C532050726F6F6620526F6F74204341301E170D3137303331363131333435315A170D3137303631363131333435315A303E310B300906035504061302434831123010060355040A1309544C532050726F6F66311B301906035504031312746C7370726F6F667365727665722E636F6D3059301306072A8648CE3D020106082A8648CE3D030107034200048734740464EBB11EE51C58F19DD761521BC954D291165F6E51E829DB61A3678189FD1AB5F624647F5DFC4F3B60CE3FF78566A53D392417CADEE47FE39EA88C75300D06092A864886F70D01010B050003820101006764246DDECF8CCB50794AC25D19FF3A9242380518FC73A9281B8057AE038F1572E0ADC10A8D7CABCAF339CE484F8EA41423A8933A92E080E2EE07FE06173D2262092D0EE953F8340AE224FB9E16342249EBCE2FE657C99F4D1CD6CD5981DCA5FE46D992053F38384CF92FC5FCD5354829C3A78D2666E0E2FB46FED7BFC9F19C9C633620A77F30F7BFED5A4E853E7F14B87481D41E24D3D9ABFFB5F6E57698A591889396A95B7329E40FE06448EDF07995D3DFF74C4B8EA89AF1FE3CF707DC0E100BE0107A70BCF94AFF350B1314F3F2E320256BBAB3EB7495161983FEEF5D55CE2C981C589F02333990D3B9E913A88F5000ED65109E40D73F43D75F13A31CE6

Qual è la chiave pubblica e l'offset lo legge costante?

    
posta floyd 31.03.2017 - 17:05
fonte

2 risposte

1

Se si invia il blob di decodificatore di lapo.it SubjectPublicKeyInfo inizia all'offset 160.

A seconda di cosa intendi con "la chiave pubblica", inizia a 160, 183 o 186. (SPKI, SPKI.PublicKey o il contenuto byte della stringa di bit). Hai davvero bisogno dell'intero SPKI, dal momento che l'id della chiave dice come leggere il carico utile, e per ECC la sezione parametri ha identificato la curva.

L'offset non è sicuramente fissato per un certificato arbitrario, il nome del soggetto, il numero di serie e il nome dell'emittente lo precedono di lunghezza variabile a seconda del loro contenuto. Dovrai sicuramente usare o scrivere un parser DER per trovarlo.

    
risposta data 02.04.2017 - 19:41
fonte
1

Possiamo cercare campi specifici usando link

Tutto ciò che dobbiamo fare è eseguire questo comando openssl:
openssl asn1parse -inform DER -in <your-cert>.der

A seconda della lunghezza di determinati campi come il Nome soggetto, la posizione del campo a cui sei interessato varia. Ecco un esempio di output del comando precedente per il campo Identificatore chiave soggetto X509v3:

547:d=5  hl=2 l=   3 prim: OBJECT            :X509v3 Subject Key Identifier
552:d=5  hl=2 l=  22 prim: OCTET STRING      [HEX DUMP]:<Truncated>

Possiamo notare l'esistenza del campo all'offset 547.

    
risposta data 29.08.2017 - 19:03
fonte

Leggi altre domande sui tag