Để tạo khóa đệm RSA ở định dạng PEM được sử dụng với openssl
, bạn có thể làm theo các bước sau.
Tạo một file định nghĩa ASN1
Sửa đổi các mẫu sau để bao gồm mô đun của bạn và số mũ
# 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%%
Thay vì chỉnh sửa, bạn cũng có thể muốn kịch bản này bằng cách sử dụng sed
sed -i "s/%%MODULUS%%/$(xxd -ps -c 256 mymodulus.bin)/" def.asn1
Lưu ý rằng -c 256
phải là được chọn theo độ dài khóa bằng byte.
Bạn có thể sử dụng lệnh tương tự cho số mũ.
Tạo khóa RSA của bạn
Sử dụng lệnh openssl sau. Điều này sẽ cung cấp cho bạn một khóa RSA được mã hóa DER.
openssl asn1parse -genconf def.asn1 -out pubkey.der -noout
Sau đó chuyển đổi nó thành một PEM chính
openssl rsa -in pubkey.der -inform der -pubin -out pubkey.pem
Xác minh bằng bạn chìa khóa
Bạn có thể sử dụng một trong hai openssl dgst -verify
hoặc openssl rsautl -verify
" ... ngoại trừ một số văn bản chương trình ... "tốt nếu bạn đọc [FAQ] (http://stackoverflow.com/faq) bạn sẽ biết stackoverflow là gì. –
GregS: Không phải như thế :) Tôi có chương trình thực hiện nó nhưng khách hàng của tôi tuyên bố rằng nó không hoạt động đúng. Vì vậy, để chứng minh anh ta rằng anh ấy sai tôi muốn cho thấy rằng ví dụ openssl (mà anh ta có thể tin tưởng) hoạt động giống như chương trình của tôi. – emstol
Bạn có muốn cấu trúc RSA * từ mô đun và số mũ đã cho không? – doptimusprime