Git Crypt Generate Symmetric Key

For this reason, you should better rely on a 256 bit key to use for symmetric AES encryption and then encrypt/decrypt that symmetric AES key with the asymmetric RSA keys This is how encrypted connections usually work, by the way. Generate the unique symmetric key key.bin of 32 bytes (i.e. 256 bit) as follows: $ openssl rand -base64 32 -out key.bin. So, should this game ever commence for real, I would suggest discretely installing a program on the computer your friend will use to generate the key and encrypt the plaintext, which will transmit the plaintext and/or key to you as it is typed in by your friend. MUCH easier, and faster, than breaking the cipher.

Symmetic encryption

For symmetic encryption, you can use the following:

To encrypt:

To decrypt:

Asymmetric encryption

For Asymmetric encryption you must first generate your private key and extract the public key.

To encrypt:

To decrypt:

Encripting files

You can't directly encrypt a large file using rsautl. Instead, do the following:

  • Generate a key using openssl rand, e.g. openssl rand 32 -out keyfile.
  • Encrypt the key file using openssl rsautl.
  • Encrypt the data using openssl enc, using the generated key from step 1.
  • Package the encrypted key file with the encrypted data. The recipient will need to decrypt the key with their private key, then decrypt the data with the resulting key.

Ultimate solution for safe and high secured encode anyone file in OpenSSL and command-line:

Private key generation (encrypted private key):

With unecrypted private key:

With encrypted private key:

Git Crypt Generate Symmetric Key System

With existing encrypted (unecrypted) private key:

Encrypt a file

Encrypt binary file:

Encrypt text file:

What is what:

Git Crypt Generate Symmetric Key
  • smime — ssl command for S/MIME utility (smime(1)).
  • -encrypt — chosen method for file process.
  • -binary — use safe file process. Normally the input message is converted to 'canonical' format as required by the S/MIME specification, this switch disable it. It is necessary for all binary files (like a images, sounds, ZIP archives).
  • -aes-256-cbc — chosen cipher AES in 256 bit for encryption (strong). If not specified 40 bit RC2 is used (very weak). (Supported ciphers).
  • -in plainfile.zip — input file name.
  • -out encrypted.zip.enc — output file name.
  • -outform DER — encode output file as binary. If is not specified, file is encoded by base64 and file size will be increased by 30%.
  • yourSslCertificate.pem — file name of your certificate's. That should be in PEM format.

That command can very effectively a strongly encrypt any file regardless of its size or format.

Decrypt a file

Decrypt binary file:

For text files:

What is what:

  • -inform DER — same as -outform above.
  • -inkey private.key — file name of your private key. That should be in PEM format and can be encrypted by password.
  • -passin pass:your_password — (optional) your password for private key encrypt.

Verification

Creating a signed digest of a file:

Verify a signed digest:

Generate Ssh Key Windows Git

Source