Provided by: libbobcat-dev_5.02.00-1build1_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  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

       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  IFilterBuf  is  initialized  with  a  buffer  of  size
              filterBufSize, using a lower bound of 100;
              - The parameter ENGINE can be used to specify a hardware  acceleration  engine,  as
              supported  by  the  used  encryption/decryption  method. Its default argument value
              indicates that no hardware acceleration is available.

       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

       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_5.02.00-x.dsc: detached signature;

       o      bobcat_5.02.00-x.tar.gz: source archive;

       o      bobcat_5.02.00-x_i386.changes: change log;

       o      libbobcat1_5.02.00-x_*.deb: debian package holding the libraries;

       o      libbobcat1-dev_5.02.00-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).