FBB::ISymCryptStream(3bobcat)

Symmetric en- and decryption
(libbobcat-dev_5.11.01)

2005-2022

NAME

FBB::ISymCryptStream - Istream performing symmetric encryption

SYNOPSIS

#include <bobcat/isymcryptstream>
Linking option: -lbobcat -lcrypto

DESCRIPTION

FBB::ISymCryptStream objects may be used to encrypt or decrypt information that is available on a separate std::istream.

The class ISymCryptStream is a class template, using a FBB::CryptType template non-type parameter. Objects of the class FBB::ISymCryptStream<FBB::ENCRYPT> encrypt the information they receive, objects of the class FBB::ISymCryptStream<FBB::DECRYPT> decrypt the information they receive.

All symmetric encryption methods defined by the OpenSSL library that can be selected by name may be used in combination with EncryptBuf objects. To select a particular encryption method an identifier is passed to the constructor. E.g., "aes-128-cbc" indicating the AES (Rijndael) method, using 128 bit sized keys and blocks using `cbc' mode (see below for an explanation).

Refer to the isymcryptstreambuf(3bobcat) man-page for a description of available encryption methods.

NAMESPACE

FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace FBB.

INHERITS FROM

FBB::ISymCryptStreambuf (private),
std::istream

CONSTRUCTOR

Copy and move constructors (and assignment operators) are not available.

INHERITED MEMBERS

Since the class uses public derivation from std::istream, all members of this class can be used.

EXAMPLE

#include "../isymcryptstream"

#include <iostream>

using namespace std;
using namespace FBB;

int main()
{
    ISymCryptStream<ENCRYPT> encryptor(cin, "bf-cbc",
                                    "1234567890", "1234567890");

    ISymCryptStream<DECRYPT> decryptor(encryptor, "bf-cbc",
                                    "1234567890", "1234567890");

    cout << decryptor.rdbuf();
}

FILES

bobcat/isymcryptstream - defines the class interface

SEE ALSO

bobcat(7), isymcryptstreambuf(3bobcat)

BUGS

None Reported.

BOBCAT PROJECT FILES

BOBCAT

Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.

COPYRIGHT

This is free software, distributed under the terms of the GNU General Public License (GPL).

AUTHOR

Frank B. Brokken (f.b.brokken@rug.nl).