DOKK / manpages / debian 11 / libbobcat-dev / cryptbuf.3bobcat.en
FBB::CryptBuf(3bobcat) Base class for DecryptBuf and EncryptBuf FBB::CryptBuf(3bobcat)

FBB::CryptBuf - std::streambuf derived base class for DecryptBuf and EncryptBuf

#include <bobcat/cryptbuf>
Linking option: -lbobcat -lcrypto

The class CryptBuf inherits from EoiBuf and may therefore be used as a base class of classes specializing std::streambuf. It is used as base class for the classes DecryptBuf and EncryptBuf, offering a protected member for accessing cipher information.

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

EoiBuf (and thus from: std::streambuf)

Analogously to std::streambuf only a protected constructor is available.

CryptBuf(char const *type, size_t bufSize):
The type is a null-terminated byte string specifying the de/encryption method. E.g., aes-128-cbc. For an overview see the encryptbuf(3bobcat) man-page. The bufSize parameter defines the initial size of the internally used buffer (defined by EoiBuf).

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

All members of std:streambuf and EoiBuf are available, as FBB::CryptBuf inherits from these classes.

EVP_CIPHER const *md() const:
A pointer to the cipher information is returned.

Here is an example from the implementation of EncryptBuf’s constructor:

#include "encryptbuf.ih"
EncryptBuf::EncryptBuf(ostream &outStream, char const *type, 

string key, string const &iv, size_t size) :
CryptBuf(type, size),
d_ctx(EVP_CIPHER_CTX_new()),
d_encrypted(size + EVP_MAX_BLOCK_LENGTH, 0),
d_iv(iv),
d_key(key),
d_outStream(outStream) {
prepareIV();
if (
not EVP_EncryptInit_ex(d_ctx, md(), 0, ucharPtr(d_key),
ucharPtr(d_iv))
)
throw Exception{ 1 } << "Encrypt initialization failed";
setp(); }

bobcat/cryptbuf - defines the class interface

bobcat(7), decryptbuf(3bobcat), encryptbuf(3bobcat), eoibuf(3bobcat), eoi(3bobcat)

None Reported.

https://fbb-git.gitlab.io/bobcat/: gitlab project page;
bobcat_5.07.00-x.dsc: detached signature;
bobcat_5.07.00-x.tar.gz: source archive;
bobcat_5.07.00-x_i386.changes: change log;
libbobcat1_5.07.00-x_*.deb: debian package containing the libraries;
libbobcat1-dev_5.07.00-x_*.deb: debian package containing the libraries, headers and manual pages;

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

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

2005-2020 libbobcat-dev_5.07.00