Per generare una chiave pbulic RSA in formato PEM da utilizzare con openssl
, è possibile seguire questi passaggi.
Creare un file di definizione ASN1
Modificare il seguente modello di includere il vostro modulo e esponente
# Start with a SEQUENCE
asn1=SEQUENCE:pubkeyinfo
# pubkeyinfo contains an algorithm identifier and the public key wrapped
# in a BIT STRING
[pubkeyinfo]
algorithm=SEQUENCE:rsa_alg
pubkey=BITWRAP,SEQUENCE:rsapubkey
# algorithm ID for RSA is just an OID and a NULL
[rsa_alg]
algorithm=OID:rsaEncryption
parameter=NULL
# Actual public key: modulus and exponent
[rsapubkey]
n=INTEGER:0x%%MODULUS%%
e=INTEGER:0x%%EXPONENT%%
Invece di modifica, è anche possibile che si desideri questo script utilizzando sed
sed -i "s/%%MODULUS%%/$(xxd -ps -c 256 mymodulus.bin)/" def.asn1
Nota il -c 256
deve essere scelto in base alla lunghezza della chiave in byte.
È possibile utilizzare un comando simile per l'esponente.
generare la vostra chiave RSA
Utilizzare il seguente comando openssl. Questo ti darà una chiave RSA codificata DER.
openssl asn1parse -genconf def.asn1 -out pubkey.der -noout
quindi convertirlo in un PEM chiave
openssl rsa -in pubkey.der -inform der -pubin -out pubkey.pem
Verifica utilizzando la chiave
È possibile utilizzare uno o openssl dgst -verify
openssl rsautl -verify
" ... tranne un po 'di scrittura programmi ... "beh se leggi le [FAQ] (http://stackoverflow.com/faq) sapresti che è così cosa è lo stackoverflow. –
Greg: Non è così :) Ho un programma che lo fa ma il mio cliente afferma che non funziona correttamente. Quindi, per dimostrargli che ha torto, voglio dimostrare che ad esempio openssl (di cui può fidarsi) si comporta allo stesso modo del mio programma. – emstol
Vuoi la struttura RSA * da un dato modulo ed esponente? – doptimusprime