OEncryptStream

class OEncryptStream

Bases: ostream

An input stream object that uses OpenSSL to encrypt data to another destination stream on-the-fly.

Attach an OEncryptStream to an existing ostream that will accept encrypted data, and write your unencrypted source data to the OEncryptStream.

Seeking is not supported.

Inheritance diagram

Inheritance diagram of OEncryptStream

OEncryptStream(void)
explicit OEncryptStream(std::ostream *dest, bool owns_dest, std::string const &password)
OEncryptStream &close(void)

Resets the EncryptStream to empty, but does not actually close the dest ostream unless owns_dest was true.

OEncryptStream &open(std::ostream *dest, bool owns_dest, std::string const &password)
void set_algorithm(std::string const &algorithm)

Specifies the encryption algorithm that should be used for future calls to open(). The default is whatever is specified by the encryption-algorithm config variable. The complete set of available algorithms is defined by the current version of OpenSSL.

If an invalid algorithm is specified, there is no immediate error return code, but open() will fail.

void set_iteration_count(int iteration_count)

Specifies the number of times to repeatedly hash the key before writing it to the stream in future calls to open(). Its purpose is to make it computationally more expensive for an attacker to search the key space exhaustively. This should be a multiple of 1,000 and should not exceed about 65 million; the value 0 indicates just one application of the hashing algorithm.

The default is whatever is specified by the encryption-iteration-count config variable.

void set_key_length(int key_length)

Specifies the length of the key, in bits, that should be used to encrypt the stream in future calls to open(). The default is whatever is specified by the encryption-key-length config variable.

If an invalid key_length for the chosen algorithm is specified, there is no immediate error return code, but open() will fail.