Generate Aes Key Openssl C

I wan to create an application which generates random AES keys and encrypts or decrpyt a file or a string, but my method doesn't seem to work. My code so far: #include opensslaes.h #inclu.

This post briefly describes how to utilise AES to encrypt and decrypt files with OpenSSL.

AES - Advanced Encryption Standard (also known as Rijndael).

OpenSSL - Cryptography and SSL/TLS Toolkit

We’ll walk through the following steps:

  • Generate an AES key plus Initialization vector (iv) with openssl and
  • how to encode/decode a file with the generated key/iv pair

Openssl Generate Key From Csr

Note: AES is a symmetric-key algorithm which means it uses the same key during encryption/decryption.

Generate Aes Key Openssl C

Generating key/iv pair

We want to generate a 256-bit key and use Cipher Block Chaining (CBC).

The basic command to use is openssl enc plus some options:

Generate aes key openssl c 10
  • -P — Print out the salt, key and IV used, then exit
  • -k <secret> or -pass pass:<secret> — to specify the password to use
  • -aes-256-cbc — the cipher name

Note: We decided to use no salt to keep the example simple.

Issue openssl enc --help for more details and options (e.g. other ciphernames, how to specify a salt, …).


Let's start with encoding Hello, AES! contained in the text file message.txt:


Decoding is almost the same command line - just an additional -d for decrypting:

Note: Beware of the line breaks

While working with AES encryption I encountered the situation where the encoder sometimes produces base 64 encoded data with or without line breaks...

Short answer: Yes, use the OpenSSL -A option.