OpenSSL: Asymmetric en- and decryption of a file
this post describes the en- and decryption of a file with a asymmetric encryption algorithm.
Asymmetric encryption means you encrypt data by a public key and can only decrypt this data with a private key associated with the public key.
An example. Create a file to encrypt
michael@debdev ~ # echo "My Secret Data" > file.txt
Make a key pair
michael@debdev ~ # openssl genpkey -algorithm RSA -out myPrivate.key -pkeyopt rsa_keygen_bits:2048
List all available public key algorithms
michael@debdev ~ # openssl list-public-key-algorithms Name: OpenSSL RSA method Type: Builtin Algorithm OID: rsaEncryption PEM string: RSA Name: rsa Type: Alias to rsaEncryption Name: OpenSSL PKCS#3 DH method Type: Builtin Algorithm OID: dhKeyAgreement PEM string: DH ...
Generate the associated public key
michael@debdev ~ # openssl rsa -pubout -in myPrivate.key -out publicKey.pem
Decrypt the file with the public key
michael@debdev ~ # openssl rsautl -encrypt -inkey publicKey.pem -pubin -in file.txt -out encypted_file.txt
and decrypt the file with the private key
michael@debdev ~ # openssl rsautl -decrypt -inkey myPrivate.key -in encypted_file.txt -out clear_text_file.txt