Reacties
- Dit lijkt meer een vraag te zijn voor Stack Overflow. Zien. bijv. stackoverflow.com/questions/17143606/…
- Het zou redelijk zijn om te implementeren met openssl api zoveel mogelijk functionaliteit.
Antwoord
Het is heel gemakkelijk om dit te doen met openssl.
Stel dat foo.crt je crt-bestand is. Vervolgens zal
$ openssl x509 -in foo.crt -text -noout
alle benodigde informatie (uitgever, pkey: modulus rsa en exponent, handtekeningalgoritme enz.) In tekstformaat afdrukken.
Als u
$ openssl x509 -in foo.crt -text -noout > foo.txt
geeft, slaat u de vorige informatie op in het foo.txt-bestand.
Om uw vraag te beantwoorden
Kun je me vertellen hoe ik uit dit bestand een openbare sleutel kan halen die klaar is voor gebruik in hexadecimaal (byte) formaat?
een manier om dit te doen is eerst de publieke sleutel exporteren en deze vervolgens converteren naar hexadecimaal
$ openssl x509 -in foo.crt -noout -pubkey > foo-public $ openssl rsa -noout -text -in foo-public -pubin > foo-public-hex
Nu foo-public- hex bevat je pkey in hex-formaat.
Vervolgens schreef je
Ik weet dat in dit bestand p, q en rest is maar Ik wil dat de definitieve openbare sleutel klaar is voor gebruik.
Ik weet niet zeker of ik je volg … de privésleutel staat niet in het .crt-bestand maar in .key-bestand en server zullen het niet naar de client sturen.
Als foo.key je privésleutel is, geef dan
$openssl rsa -noout -text -in foo.key
je ziet de privé-exponent en de priemgetallen p, q in hexadecimale vorm.
Opmerkingen
- Nitpick: openssl commandline is beschikbaar voor en werkt hetzelfde op alle Unixes en Windows, niet alleen LInux. VMS is een beetje anders, maar niet veel.