oracular (3) ibase64buf.3bobcat.gz

Provided by: libbobcat-dev_6.06.01-1_amd64 bug

NAME

       FBB::IBase64Buf - Input Filtering stream buffer doing base64 conversion

SYNOPSIS

       #include <bobcat/ibase64buf>
       Linking option: -lbobcat

DESCRIPTION

       The information made available by IBase64Buf objects has been subject to base64 encoding or decoding. The
       information to be converted is made available to IBase64Buf object via std::istream objects.

       The class IBase64Buf is a class template, using a FBB::CryptType template non-type parameter. Objects  of
       the  class FBB::IBase64Buf<FBB::ENCRYPT> base64 encode the information they receive, objects of the class
       FBB::IBase64Buf<FBB::DECRYPT> base64 decode the information they receive. See  also  section  ENUMERATION
       below.

NAMESPACE

       FBB
       All  constructors,  members,  operators  and manipulators, mentioned in this man-page, are defined in the
       namespace FBB.

INHERITS FROM

       FBB::IFilterBuf

ENUMERATION

       IBase64Buf objects  either  base64  encode  or  decode  information.  IBase64Buf  objects  of  the  class
       FBB::IBase64Buf<FBB::ENCRYPT>  base64  encode  the  data  they  receive,  IBase64Buf objects of the class
       FBB::IBase64Buf<FBB::DECRYPT> base64 decode the data they receive.

       The values ENCRYPT and DECRYPT are defined in the enum CryptType, which is defined in the FBB namespace.

CONSTRUCTOR

       o      IBase64Buf<CryptType>(std::istream &in, size_t bufSize = 1000):
              This constructor initializes the streambuf.

              - IBase64Buf<ENCRYPT> objects perform base64 encoding;
              - IBase64Buf<DECRYPT> objects perform base64 decoding;
              - IBase64Buf<CryptType> objects obtain the bytes to encode or decode from std::istream &in;
              - The IFilterBuf base class is initialized with a buffer of size bufSize, using a lower  bound  of
              100.

              The  constructor  uses  a configurable buffer size for reading. Characters that were read into the
              buffer but are not part of the actual base64 encoded data are  unavailable  after  completing  the
              base64  decrypting.  If  information  beyond  the base64 input block should remain available, then
              specify a buffer size of 1.

       Copy and move constructors (and assignment operators) are not available.

MEMBER FUNCTIONS

       All members of FBB::IFilterBuf are available, as IBase64Buf inherits from this class.

EXAMPLE

       The example shows the construction of IBase64Buf<ENCRYPT> objects encode which are used to  initialize  a
       std::istream object. The information read from this istream is base64 encoded.

       IBase64Buf<DECRYPT>  objects  (decode  reads  base64  encoded  information  from std::istream objects and
       decodes it again).

       The std::istream din object is initialized with the IBase64Buf<DECRYPT> object, and its content  is  sent
       to  std::cout.  The  information  that  is  presented at std::cin and that appears at std::cout should be
       identical.

       #include <iostream>
       #include <istream>

       #include <bobcat/ibase64buf>

       using namespace std;
       using namespace FBB;

       int main(int argc, char **argv)
       {
           switch (argv[1][0])
           {
               case ’e’:
               {
                   IBase64Buf<ENCRYPT> encode(cin);
                   istream ein(&encode);
                   cout << ein.rdbuf();
               }
               break;

               case ’d’:
               {
                   IBase64Buf<DECRYPT> decode(cin);
                   istream din(&decode);
                   cout << din.rdbuf();
               }
               break;

               case ’b’:
               {
                   IBase64Buf<ENCRYPT> encode(cin);
                   istream ein(&encode);

                   IBase64Buf<DECRYPT> decode(ein);
                   istream din(&decode);
                   cout << din.rdbuf();
               }
               break;

               default:
                   cout << "Usage: " << argv[0] << " [edb] < infile > outfile\n"
                           "to base64 -e-ncode, -d-ecode or -b-oth\n";
               break;
           }
       }

FILES

       bobcat/ibase64buf - defines the class interface

SEE ALSO

       bobcat(7), isymcryptstreambuf(3bobcat), ibase64stream(3bobcat), ifilterbuf(3bobcat), ofilterbuf(3bobcat),
       std::streambuf.

BUGS

       None reported.

BOBCAT PROJECT FILES

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

       o      bobcat_6.06.01-x.dsc: detached signature;

       o      bobcat_6.06.01-x.tar.gz: source archive;

       o      bobcat_6.06.01-x_i386.changes: change log;

       o      libbobcat1_6.06.01-x_*.deb: debian package containing the libraries;

       o      libbobcat1-dev_6.06.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’.

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

AUTHOR

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