GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  DIGESTBUF (3)

NAME

FBB::Digestbuf - Computes Message Digests from information inserted into a std::ostream

CONTENTS

SYNOPSIS

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

DESCRIPTION

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\(cqs 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).

NAMESPACE

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

INHERITS FROM

std::streambuf

CONSTRUCTORS

o Digestbuf(char const *type, size_t bufsize = 1024):
This constructor initializes the streambuf, setting it up for the message digest algorithm specified with type. The message digest algorithms specified in the DESCRIPTION section may be used here. E.g., to use the sha256 algorithm specify \(dqsha256\(dq.
The bufsize argument specifies the internal buffer used by Digestbuf to store incoming characters temporarily. The provided default argument should be OK in all normal cases. There is no copy constructor.

OVERLOADED OPERATOR

o std::ostream &operator<<(std::ostream &out, DigestBuf const &digestbuf):
The insertion operator is a free function defined in the namespace FBB. It inserts a hash value as a series of hexadecimally displayed values into the provided ostream. See the example below for an illustration. The overloaded assignment operator is not available.

MEMBER FUNCTIONS

All members of std::streambuf are available, as FBB::Digestbuf inherits from this class. Some of the std::streambuf\(cqs member are overridden or are hidden by Digestbuf. In normal situations these inherited members will not be used by programs using DigestBuf objects.

o void close():
This member finishes the computation of the message digest computation. It is needed as the DigestBuf object has no external means for deciding whether all information to compute the digest for has yet been received or not. The general approach to follow when computing a message digest is therefore:

create a DigestBuf object use it to create a std::ostream object insert information into the ostream object call the DigestBuf object\(cqs close() member obtain/process the hash value from the DigestBuf object.

o std::string const &hash() const:
This member returns the hash value computed by the DigestBuf object. Its value is only defined after having called close(). The hash value is returned in a std::string object. This string\(cqs length() member contains the number of characters used by the hash value, and its data() member refers to the hash value\(cqs characters. Note that a hash value\(cqs character value may be 0 (not to be confused with \(cq0\(cq).
o void open():
This member reinitializes the message digest computation. One a message digest has been computed for, say a stream streamA this member can be called after which the digest for a stream streamB can be computed using the same DigestBuf object.

EXAMPLE

#include <iostream>
#include <ostream>
#include <bobcat/errno>
#include <bobcat/digestbuf>

using namespace std; using namespace FBB;

int main(int argc, char **argv) try { DigestBuf digestbuf(argv[1]); ostream out(&digestbuf);

string hw(\(dqhello world\n\(dq);

out << hw; digestbuf.close(); cout << \(dq>\(dq << digestbuf << \(dq<\(dq << endl;

digestbuf.open(); out.write(hw.c_str(), hw.length()); digestbuf.close(); cout << \(dq>\(dq << digestbuf << \(dq<\(dq << endl; } catch(Errno const &err) { cout << err.why() << endl; return 1; }

FILES

bobcat/digestbuf - defines the class interface

SEE ALSO

bobcat(7), hmacbuf(3bobcat), std::streambuf

BUGS

None reported

DISTRIBUTION FILES

o bobcat_3.25.01-x.dsc: detached signature;
o bobcat_3.25.01-x.tar.gz: source archive;
o bobcat_3.25.01-x_i386.changes: change log;
o libbobcat1_3.25.01-x_*.deb: debian package holding the libraries;
o libbobcat1-dev_3.25.01-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\(cqs Own Base Classes And Templates\(cq.

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

Search for    or go to Top of page |  Section 3 |  Main Index


libbobcat-dev_3&.25&.01-x&.tar&.gz FBB::DIGESTBUF (3bobcat) 2005-2015

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.