Provided by: libbobcat-dev_3.19.01-1ubuntu1_amd64 bug

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  descryption  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

       o      ISymCryptStream<CryptType>(  std::istream &in,        char const *type, std::string
              const &key,  std::string const &iv, size_t bufSize = 100,    size_t filterBufSize =
              1000, ENGINE *engine = 0):
              This    constructor    initializes    a   std::istream   providing   it   with   an
              FBB::ISymCryptStreambuf  stream  buffer.   The   ISymCryptStreambuf’s   constructor
              receives all arguments that are passed to this constructor.

              - ISymCryptStream<ENCRYPT> objects perform encryption;
              ISymCryptStream<DECRYPT> objects perform decryption;
              -  ISymCryptStream<CryptType>  objects  obtain the bytes to encrypt or decrypt from
              std::istream &in;
              - The encryption method to use is specified by the type parameter.  E.g.,  "bf-cbc"
              selects the Blowfish Cipher Block Chaining method;
              - The symmetric key to use is specified by the key parameter;
              - The initialization vector is specified by the iv parameter;
              -   The   FBB::ISymCryptStreambuf  internally  used  buffer  will  contain  bufSize
              characters. The default value is the smallest value that is used.  When  a  smaller
              bufSize value is specified, the default value is used;
              -  The  internally  used  IFilterStreambuf  is  initialized  with  a buffer of size
              filterBufSize, using a lower bound of 100;
              - The parameter ENGINE can be used to specify a hardware accelleration  engine,  as
              supported  by  the  used  encryption/decryption  method. Its default argument value
              indicates that no hardware accelleration is 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

       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

       o      bobcat_3.19.01-x.dsc: detached signature;

       o      bobcat_3.19.01-x.tar.gz: source archive;

       o      bobcat_3.19.01-x_i386.changes: change log;

       o      libbobcat1_3.19.01-x_*.deb: debian package holding the libraries;

       o      libbobcat1-dev_3.19.01-x_*.deb:  debian  package holding the libraries, headers and
              manual pages;

       o      http://sourceforge.net/projects/bobcat: public archive location;

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