Kommentarer
- Dette synes mere at være et spørgsmål til Stack Overflow. Se. for eksempel. stackoverflow.com/questions/17143606/…
- Det ville være rimeligt at implementere med openssl api så meget funktionalitet som muligt.
Svar
Det er meget nemt at gøre dette med openssl.
Sig, at foo.crt er din crt-fil. Derefter vil
$ openssl x509 -in foo.crt -text -noout
udskrive alle nødvendige oplysninger (udsteder, pkey: modul rsa og eksponent, signaturalgoritme osv.) I tekstformat.
Hvis du giver
$ openssl x509 -in foo.crt -text -noout > foo.txt
, gemmer du de tidligere oplysninger i foo.txt-filen.
For at besvare dit spørgsmål
Kan du fortælle mig, hvordan kan jeg udtrække en offentlig nøgle fra denne fil, der er klar til brug i hexadecimal (byte) format?
en måde at gøre dette på er først at eksportere den offentlige nøgle og derefter konvertere den til hex-form
$ openssl x509 -in foo.crt -noout -pubkey > foo-public $ openssl rsa -noout -text -in foo-public -pubin > foo-public-hex
Nu foo-offentlig- hex indeholder din nøgle i hex-format.
Så skrev du
Jeg ved, at i denne fil er p, q og resten, men Jeg vil have den endelige offentlige nøgle klar til brug.
Jeg er ikke sikker på, at jeg følger dig … den private nøgle er ikke i .crt-filen, men i .key-fil og server sendte den ikke til klienten.
Hvis foo.key er din private nøgle, så giver
$openssl rsa -noout -text -in foo.key
vil du se den private eksponent og primtalerne p, q i hex-form.
Kommentarer
- Nitpick: openssl kommandolinje er tilgængelig for og fungerer det samme på alle Unixes og Windows, ikke kun LInux. VMS er lidt anderledes, men ikke meget.