bionic (3) isymcryptstream.3bobcat.gz

Provided by: libbobcat-dev_4.08.02-2build1_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 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 acceleration engine, as supported by the
              used  encryption/decryption  method.  Its  default  argument  value  indicates  that  no  hardware
              acceleration 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_4.08.02-x.dsc: detached signature;

       o      bobcat_4.08.02-x.tar.gz: source archive;

       o      bobcat_4.08.02-x_i386.changes: change log;

       o      libbobcat1_4.08.02-x_*.deb: debian package holding the libraries;

       o      libbobcat1-dev_4.08.02-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’.

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

AUTHOR

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