RSA Public Key / Private Key Encryption with OpenSSL
You can do RSA (and DSA actually) on most unix systems without any additional software… No GPG/PGP required. It’s less than obvious however, as I couldn’t find any documentation that puts this all in one place. So here it is…
Generate a new private key:
openssl genrsa -out test.priv_key
Generate the public key for this private key:
openssl rsa -in test.priv_key -pubout -out test.pub_key
RSA encrypt a block:
openssl rsautl -sign -inkey test.priv_key -pkcs -out test.sig
Decrypt an RSA block:
openssl rsautl -verify -in test.sig -inkey test.pub_key -pubin
You can also sign a block using MD5:
openssl md5 | openssl rsautl -sign -inkey test.priv_key -pkcs -out test.sig