Aby wygenerować klucz serwisowy RSA w formacie PEM, który będzie używany z openssl
, można wykonać następujące kroki.
Tworzenie ASN1 plik definicji
zmodyfikować następujący szablon na swój moduł i wykładnik
# 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%%
Zamiast edycji, można również może chcieć skrypt to za pomocą sed
sed -i "s/%%MODULUS%%/$(xxd -ps -c 256 mymodulus.bin)/" def.asn1
Uwaga: -c 256
powinno być wybrane według długości klucza w bajtach.
Możesz użyć podobnego polecenia dla wykładnika.
wygenerować klucz RSA
Użyj następującego polecenia openssl. To da Ci klucz RSA zakodowany w DER.
openssl asn1parse -genconf def.asn1 -out pubkey.der -noout
następnie przekształcić go w PEM kluczowego
openssl rsa -in pubkey.der -inform der -pubin -out pubkey.pem
Sprawdź używając swojego klucza
Można użyć openssl dgst -verify
lub openssl rsautl -verify
”... z wyjątkiem pisania niektóre programy ... "jeśli czytasz [FAQ] (http://stackoverflow.com/faq), to wiesz do czego jest stackoverflow. –
GregS: To nie tak :) Mam program, który robi to, ale mój klient twierdzi, że nie działa poprawnie. Aby udowodnić mu, że się myli, chcę pokazać, że na przykład openssl (któremu można zaufać) zachowuje się tak samo jak mój program. – emstol
Czy chcesz mieć strukturę RSA * z danego modułu i wykładnika? – doptimusprime