Provided by: libbobcat-dev_5.09.01-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 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.

BOBCAT PROJECT FILES

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       o      bobcat_5.09.01-x.dsc: detached signature;

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

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

       o      libbobcat1_5.09.01-x_*.deb: debian package containing the libraries;

       o      libbobcat1-dev_5.09.01-x_*.deb: debian package containing the libraries, headers and manual pages;

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

libbobcat-dev_5.09.01                               2005-2021                      FBB::ISymCryptStream(3bobcat)