Provided by: libbobcat-dev_5.00.02-2_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
       contents  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.

DISTRIBUTION FILES

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

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

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

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

       o      libbobcat1-dev_5.00.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’.

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