FBB::DigestBuf(3bobcat) | Compute Message Digests | FBB::DigestBuf(3bobcat) |
FBB::DigestBuf - Computes Message Digests from information inserted into a std::ostream
#include <bobcat/digestbuf>
Linking option: -lbobcat
FBB::DigestBuf objects are std::streambuf objects that can be used to initialize std::ostream objects with.
All information inserted into such a std::ostream is used to compute a message digest from.
All the message digests defined by the OpenSSL library that can be selected by name may be used in combination with DigestBuf objects.
The following message digest algorithms are currently supported: mull, md2, md5, sha, sha1, sha224, sha256, sha384, sha512, dss, dss1, ecdsa, mdc2, ripemd160. These very names are the ones to use to select the particular digest algorithms for the class’s constructor, below. It is quite possible that future releases of the openssl library will support additional message digest algorithms. The header file openssl/evp.h lists all available digest algorithms (in that file look for EVP_MD *EVP_: a message digest algorithm immediately follows the 2nd underscore. E.g., const EVP_MD *EVP_md4(void) which refers to the md4 message digest algorithm).
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
std::streambuf
The copy and move constructors and assignment operators are not available.
All members of std::streambuf are available, as FBB::DigestBuf inherits from this class.
create a DigestBuf object
use it to create a std::ostream object
insert information into the ostream object
call the DigestBuf object’s eoi() member or insert the
eoi manipulator into the ostream (see below)
obtain/process the hash value from the DigestBuf object.
#include <iostream> #include <ostream> #include <bobcat/exception> #include "../digestbuf" using namespace std; using namespace FBB; int main(int argc, char **argv) try {
DigestBuf digestbuf(argv[1]);
ostream out(&digestbuf);
string hw("hello world\n");
out << hw << eoi;
cout << ">" << digestbuf << "<" << endl;
digestbuf.reset();
out.write(hw.c_str(), hw.length()) << eoi;
cout << ">" << digestbuf << "<" << endl; } catch(exception const &err) {
cout << err.what() << endl;
return 1; }
bobcat/digestbuf - defines the class interface
bobcat(7), hmacbuf(3bobcat), std::streambuf
None reported
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 |