Basic struct for for storing a key. Includes a key, an iv and a salt.
Creates a random key and iv of the specified size
Creates a random salt of the specified size.
Allocates memory for the requested key lengths. By default they are set to the maximum values per the openssl library.