Commenti
- Questa sembra essere più una domanda per Stack Overflow. Vedere. per esempio. stackoverflow.com/questions/17143606/…
- Sarebbe ragionevole implementarlo con openssl api quante più funzionalità possibili.
Answer
È molto facile farlo con openssl.
Diciamo che foo.crt è il tuo file crt. Quindi,
$ openssl x509 -in foo.crt -text -noout
stamperà tutte le informazioni necessarie (emittente, pkey: modulo rsa ed esponente, algoritmo di firma ecc.) In formato testo.
Se dai
$ openssl x509 -in foo.crt -text -noout > foo.txt
salverai le informazioni precedenti nel file foo.txt.
Per rispondere alla tua domanda
Puoi dirmi come posso estrarre da questo file la chiave pubblica pronta per luso in formato esadecimale (byte)?
un modo per farlo è prima esportare la chiave pubblica e poi convertirla in formato esadecimale
$ openssl x509 -in foo.crt -noout -pubkey > foo-public $ openssl rsa -noout -text -in foo-public -pubin > foo-public-hex
Ora foo-public- hex contiene il tuo pkey in formato esadecimale.
Quindi hai scritto
So che in questo file è p, q e rest ma Voglio la chiave pubblica finale pronta per luso.
Non sono sicuro di seguirti … la chiave privata non è nel file .crt ma in .key file e server non lo invieranno al client.
Se foo.key è la tua chiave privata, allora dai
$openssl rsa -noout -text -in foo.key
vedrai lesponente privato e i numeri primi p, q in formato esadecimale.
Commenti
- Nitpick: openssl commandline è disponibile per e funziona allo stesso modo su tutti gli Unix e Windows, non solo su Linux. VMS è leggermente diverso, ma non molto.