FBB::ISymCryptStream(3bobcat)

Symmetric en- and decryption
(libbobcat-dev_4.08.03-x.tar.gz)

2005-2018

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

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

Sep/Oct 2013: due to a change in library handling by the linker (cf. http://fedoraproject.org/wiki/UnderstandingDSOLinkChange and https://wiki.debian.org/ToolChain/DSOLinking) libraries that are indirectly required are no longer automatically linked to your program. With BigInt this is libcrypto, which requires programs to link to both bobcat and crypto.

DISTRIBUTION 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).