Skip to content

Instantly share code, notes, and snippets.

@truetamtam
Forked from carlj/rsa-encryption.md
Last active August 31, 2015 19:02
Show Gist options
  • Save truetamtam/dd75b9dc95f3244a78a0 to your computer and use it in GitHub Desktop.
Save truetamtam/dd75b9dc95f3244a78a0 to your computer and use it in GitHub Desktop.
RSA large File En- and Decryption

#RSA File De- and Encryption Docu for encrypt and decrypt a large file with AES and RSA

##Keypairs

###Generate RSA Keypairs

//generates a private Key with 8196 Bit
openssl genrsa -out private.pem 8196

//strips out the public key from the private key
openssl rsa -in private.pem -out public.pem -outform PEM -pubout

// encrypt private key with passfraze
openssl rsa -des3 -in private.pem -out public.pem

###Generate AES Key

//generate a Radnom 32 Byte (256 Bit) AES Key
openssl rand -base64 32 -out aesKey.txt

##Encryption

###Encrypt File with AES Key

//encryp the file.txt with the generated AES Key to the file.enc
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc -pass file:./aesKey.txt

###Encrypt AES Key with RSA Public Key

//encrpyt the AES Key with the RSA Public Key
openssl rsautl -encrypt -inkey public.pem -pubin -in aesKey.txt -out aesKey.txt.crypted

##Decryption

###Decrypt AES Key with RSA Private Key

//decrypt the AES Key with the Private RSA Key
openssl rsautl -decrypt -inkey private.pem -in aesKey.txt.crypted -out aesKey.txt.decrypted

###Decryp File with AES Key

//decrypt the encrypted file with the encrypted AES Key
openssl enc -d -aes-256-cbc -in file.enc -out file.txt.decrypted -pass file:./aesKey.txt.decrypted

##Generate a Signature

###Generate a Signature for the file.txt

//Generate the signature.txt for the file.txt
openssl dgst -sha256 -sign private.pem -out signature.txt file.txt 

###Verify the signature for the recieved file.txt and the signature.txt

openssl dgst -sha256 -verify public.pem -signature signature.txt file.txt
# in case of success: prints "Verified OK"
# in case of failure: prints "Verification Failure"

Stackoverflow: Digital signature for a file using openssl

##Source Public – Private key encryption using OpenSSL

An Introduction to the OpenSSL command line tool - Digital signatures

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment