glibmm: Glib::Checksum Class Reference
Computes the checksum for data. More...
#include <glibmm/checksum.h>
Public Types |
|
enum |
ChecksumType
{
CHECKSUM_MD5 , CHECKSUM_SHA1 , CHECKSUM_SHA256 , CHECKSUM_SHA512 } |
The hashing algorithm to be used by
Checksum
when performing the digest of some data.
More...
|
|
Public Member Functions |
|
Checksum () | |
Constructs an invalid object.
More...
|
|
Checksum (GChecksum* castitem, bool make_a_copy=false) | |
Checksum (const Checksum & src) | |
Checksum & | operator= (const Checksum & src) |
Checksum ( Checksum && other) noexcept | |
Checksum & | operator= ( Checksum && other) noexcept |
~Checksum () noexcept | |
void | swap ( Checksum & other) noexcept |
GChecksum* | gobj () |
const GChecksum* | gobj () const |
GChecksum* | gobj_copy () const |
Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.
More...
|
|
Checksum ( ChecksumType checksum_type) | |
Creates a new
Checksum
, using the checksum algorithm
checksum_type
.
More...
|
|
operator bool () const | |
Returns true if the
Checksum
object is valid.
More...
|
|
void | reset () |
Resets the state of the
checksum
back to its initial state.
More...
|
|
void | update (const guchar* data, gsize length) |
Feeds
data
into an existing
Checksum
.
More...
|
|
void | update (const std::string & data) |
Feeds data into an existing
Checksum
.
More...
|
|
void | get_digest (guint8* buffer, gsize* digest_len) const |
Gets the digest from
checksum
as a raw binary vector and places it into
buffer
.
More...
|
|
std::string | get_string () const |
Gets the digest as an hexadecimal string.
More...
|
|
Static Public Member Functions |
|
static std::string | compute_checksum ( ChecksumType checksum_type, const guchar* data, gsize length) |
Computes the checksum for a binary
data
of
length
.
More...
|
|
static std::string | compute_checksum ( ChecksumType checksum_type, const std::string & str) |
Computes the checksum of a string.
More...
|
|
static gssize | get_length ( ChecksumType checksum_type) |
Gets the length in bytes of digests of type
checksum_type
.
More...
|
|
Protected Attributes |
|
GChecksum* | gobject_ |
Related Functions |
|
(Note that these are not member functions.) |
|
void | swap ( Checksum & lhs, Checksum & rhs) noexcept |
Glib::Checksum | wrap (GChecksum* object, bool take_copy=false) |
A
Glib::wrap()
method for this object.
More...
|
|
Detailed Description
Computes the checksum for data.
This is a generic API for computing checksums (or "digests") for a sequence of arbitrary bytes, using various hashing algorithms like MD5, SHA-1 and SHA-256. Checksums are commonly used in various environments and specifications.
glibmm supports incremental checksums by calling update() as long as there's data available and then using get_string() or get_digest() to compute the checksum and return it either as a string in hexadecimal form, or as a raw sequence of bytes. To compute the checksum for binary blobs and NULL-terminated strings in one go, use the static compute_checksum() convenience functions().
Constructor & Destructor Documentation
Glib::Checksum::Checksum | ( | ) |
Constructs an invalid object.
E.g. for output arguments to methods. There is not much you can do with the object before it has been assigned a valid value.
|
explicit |
Glib::Checksum::Checksum | ( | const Checksum & | src | ) |
|
noexcept |
|
noexcept |
|
explicit |
Member Function Documentation
|
static |
Computes the checksum for a binary data of length .
This is a convenience wrapper for g_checksum_new(), g_checksum_get_string() and g_checksum_free().
The hexadecimal string returned will be in lower case.
- Parameters
-
checksum_type A ChecksumType. data Binary blob to compute the digest of. length Length of data .
- Returns
- The digest of the binary data as a string in hexadecimal. The returned string should be freed with g_free() when done using it.
|
static |
Computes the checksum of a string.
- Parameters
-
checksum_type A ChecksumType str The string to compute the checksum of.
- Returns
- The checksum as a hexadecimal string.
void Glib::Checksum::get_digest | ( | guint8 * | buffer , |
gsize * | digest_len | ||
) | const |
Gets the digest from checksum as a raw binary vector and places it into buffer .
The size of the digest depends on the type of checksum.
Once this function has been called, the Checksum is closed and can no longer be updated with g_checksum_update().
- Parameters
-
buffer Output buffer. digest_len An inout parameter. The caller initializes it to the size of buffer . After the call it contains the length of the digest.
|
static |
Gets the length in bytes of digests of type checksum_type .
- Parameters
-
checksum_type A ChecksumType.
- Returns
- The checksum length, or -1 if checksum_type is not supported.
std::string Glib::Checksum::get_string | ( | ) | const |
Gets the digest as an hexadecimal string.
Once this function has been called the Checksum can no longer be updated with g_checksum_update().
The hexadecimal characters will be lower case.
- Returns
- The hexadecimal representation of the checksum. The returned string is owned by the checksum and should not be modified or freed.
|
inline |
|
inline |
GChecksum* Glib::Checksum::gobj_copy | ( | ) | const |
Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.
Glib::Checksum::operator bool | ( | ) | const |
Returns true if the Checksum object is valid.
This will return false, for instance, if an unsupported checksum type was provided to the constructor.
void Glib::Checksum::reset | ( | ) |
Resets the state of the checksum back to its initial state.
|
noexcept |
void Glib::Checksum::update | ( | const guchar * | data , |
gsize | length | ||
) |
Feeds data into an existing Checksum .
The checksum must still be open, that is g_checksum_get_string() or g_checksum_get_digest() must not have been called on checksum .
- Parameters
-
data Buffer used to compute the checksum. length Size of the buffer, or -1 if it is a null-terminated string.
void Glib::Checksum::update | ( | const std::string & | data | ) |
Feeds data into an existing Checksum .
The checksum must still be open, that is get_string() or get_digest() must not have been called on the checksum.
- Parameters
-
data Buffer used to compute the checksum
Friends And Related Function Documentation
- Parameters
-
lhs The left-hand side rhs The right-hand side
|
related |
A Glib::wrap() method for this object.
- Parameters
-
object The C instance. take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
- Returns
- A C++ instance that wraps this C instance.
Member Data Documentation
|
protected |