Komentáře
- Zdá se, že to je spíše otázka přetečení zásobníku. Vidět. např. stackoverflow.com/questions/17143606/…
- Bylo by rozumné implementovat pomocí openssl API co nejvíce funkcí.
Odpovědět
Pomocí openssl je to velmi snadné.
Řekněme, že foo.crt je váš soubor crt. Poté
$ openssl x509 -in foo.crt -text -noout
vytiskne všechny potřebné informace (emitent, pkey: modulus rsa a exponent, podpisový algoritmus atd.) V textovém formátu.
Pokud zadáte
$ openssl x509 -in foo.crt -text -noout > foo.txt
uložíte předchozí informace do souboru foo.txt.
Chcete-li odpovědět na svou otázku
Můžete mi říci, jak mohu z tohoto souboru extrahovat veřejný klíč připravený k použití v hexadecimálním (bajtovém) formátu?
jedním ze způsobů, jak toho dosáhnout, je nejprve exportovat veřejný klíč a poté jej převést do hexadecimální podoby
$ openssl x509 -in foo.crt -noout -pubkey > foo-public $ openssl rsa -noout -text -in foo-public -pubin > foo-public-hex
Nyní foo-public- hex obsahuje váš pkey v hexadecimálním formátu.
Pak jste napsali
Vím, že v tomto souboru je p, q a zbytek, ale Chci, aby byl finální veřejný klíč připraven k použití.
Nejsem si jistý, zda vás sleduji … soukromý klíč není v souboru .crt, ale v Soubor .key a server jej klientovi neodesílají.
Pokud je foo.key vaším soukromým klíčem, pak dává
$openssl rsa -noout -text -in foo.key
uvidíte soukromý exponent a prvočísla p, q v hexadecimálním tvaru.
Komentáře
- Nitpick: příkazový řádek openssl je k dispozici a funguje stejně ve všech Unixech a Windows, nejen v LInuxu. VMS je trochu jiný, ale ne moc.