OpenSSL Command Line RSA Signing and Verifying Test

Pre-requirment: compile and install openssl library, which includes a command line utility openssl

Step 1: Generate a RSA key pair and save them to two different files

> openssl genrsa -out private_key.pem 2048

> openssl rsa -in private_key.pem -pubout -out public_key.pem

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA67ssonUFYjcb58g2x6hwQRUD3r91wtu72DWTcPN6Vy2zwngM
YbndmxI4gVERDQweK7Y+S2tRj6iOiFBapYUiO/a6kYJOPvv+oZVFZOrH9bTBAxxz
0H8RHDy1+vd/uVl2RhsHJG/8xu8JuIdOxoLwDgVnNNoyzmHGTAD1tB6nFNQLKeKE
dJKltgepiTXm85AX+j7zIrRH7yIUFxWfiCJYPGno37/rOqXwGx9WVqTLrHGxWANR
3BCZAlQqsaEHiGhIgLLaAn3ifAfszLlcZgrUpMuXJArT0EX48jPv9iVWk4MzV+4q
srNzEwRLSPX3jyve9i0J3saXMwtDibSfAwBcQwIDAQABAoIBACEmMSCnVBp7pXDy
tsFc7mw4iFLKmcTNIZ1F63X2xz17L8wpFZSojoFADrIgtEUhbxy2hAwXC2EoUuLY
aebc0fOcvp+3s0koJqaSVy/Z1ES5JmtJlP+83qsZ3n1sUInACuHQ6zA0j1dqRfOt
E2bXAur1142XIY3kMf5+JA8wQE6tPcvcQ7xQi7nTPM/hcmGltkpEYu+xIlh9HLiL
cSzgUnD1My1DhHuOWudBpyld7LdI5akazYP7bTMMxzERuH9kKHh2QWF/tcFx6EVc
Hc0JInG+PC79fN+PhnKTp0EdDgoEYFLlIOtoqkpYd9zK3vcBI6u/VWSgdF9iLKIW
32/A4AECgYEA+OOz+cDuKHP55z81H9+7ibWdnNGmoC1++4lNHlwwvIfgDW/gMn+v
ag6LMm8kD2tI2tTE/mQ/o+YqG81kySbliZEzTyvwythK3BNfy3zEhQ2ySkswW2L2
K0qKtRUMsJgqxSv+Qv+/wBx2cmPFn+y5pM1heo2b4OqhThImm0QA4tUCgYEA8nc8
VK+GCzExkxdifhpFqyhVajQNJ301LGWOdPDKhB03E15ayMGNAsg62dIHO6pWQZFz
64B07LU4cLqniJJ+FUBsKGaFVdRqIPdzQYu/qJ8UeAkHeWXbMSbvn6LBHckOXYZz
zJKvim9dyTGOrrGN7j7vFW3kry0e9Vk8McjEXrcCgYEAtcus5FsWGppMCatTpIqJ
s5bjH27LpOhWfmjV2b1BJBSjhW0YeApoGLGy3w3raw/UUXNkyOR0z8UJMPGgEoXE
1+0la0kPQzslwwarzDjAWuecOUQeeEIayZhTJN3RPRSI+SifOlUQvMSNiBR0f9Ir
78LM1vWkzG7Vj+8WIAdWFlkCgYBL9ymSys9vcEE8+YWlRqvvPRrNxHMenS7sswDY
CJ0amWCpE9XTsjhw17UAi7oyamLN9jlgXoXDp9+ACir1MhiIpf99BOnfg0ag/4Y/
0f4BYZ3zIbkSwuPS2YUX+dEReO2kRbzAKnEPKWcz4u/2MbDrJRKZHy4X6EYbzpJ6
cpF7rwKBgQCzLb4P352fvOGqufF10o1JSZGuMhSCVf2F2Bknr91/AJv/wGSSFwdw
kmlsHuxqvAes72xYNkjZgJuJdJf/rzgClmhvTFFdiGhXeKkn4++9lC4jvVGb5uMA
kJUUasIK9TzS0FIFANIke34BsZ3/02/3hWw9F+D+X+473fnM0/lQEw==
-----END RSA PRIVATE KEY-----

 

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA67ssonUFYjcb58g2x6hw
QRUD3r91wtu72DWTcPN6Vy2zwngMYbndmxI4gVERDQweK7Y+S2tRj6iOiFBapYUi
O/a6kYJOPvv+oZVFZOrH9bTBAxxz0H8RHDy1+vd/uVl2RhsHJG/8xu8JuIdOxoLw
DgVnNNoyzmHGTAD1tB6nFNQLKeKEdJKltgepiTXm85AX+j7zIrRH7yIUFxWfiCJY
PGno37/rOqXwGx9WVqTLrHGxWANR3BCZAlQqsaEHiGhIgLLaAn3ifAfszLlcZgrU
pMuXJArT0EX48jPv9iVWk4MzV+4qsrNzEwRLSPX3jyve9i0J3saXMwtDibSfAwBc
QwIDAQAB
-----END PUBLIC KEY-----

Step 2: Sign a short test file

> openssl pkeyutl -sign -inkey private_key.pem -in filea.txt > filea.sig

 

Step 3: Verify the signature of the file

> openssl pkeyutl -verify -pubin -inkey public_key.pem -sigfile filea.sig -in filea.txt

> Signature Verified Successfully

posted @ 2016-11-29 18:59  #Haiyang  阅读(300)  评论(0编辑  收藏  举报