BSD style: see doc/license.txt for details
Initial release: Feb 2006
Regan Heath, Oskar Linde
This module defines the Digest interface.
- class Digest [abstract] ¶
-
The DigestTransform interface defines the interface of message
digest algorithms, such as MD5 and SHA. Message digests are
secure hash functions that take a message of arbitrary length
and produce a fix length digest as output.
A object implementing the DigestTransform should start out initialized.
The data is processed though calls to the update method. Once all data
has been sent to the algorithm, the digest is finalized and computed
with the digest method.
The digest method may only be called once. After the digest
method has been called, the algorithm is reset to its initial
state.
Using the update method, data may be processed piece by piece,
which is useful for cases involving streams of data.
For example:
1
2
3
4
5
6
7
8
9
10
11
|
// create an MD5 hash algorithm
Md5 hash = new Md5();
// process some data
hash.update("The quick brown fox");
// process some more data
hash.update(" jumps over the lazy dog");
// conclude algorithm and produce digest
ubyte[] digest = hash.binaryDigest();
|
- Digest update(const(void[]) data) [abstract] ¶
-
Updates the hash algorithm state with new data
- ubyte[] binaryDigest(ubyte[] buffer = null) [abstract] ¶
-
Computes the digest and resets the state
buffer | a buffer can be supplied for the digest to be
written to |
If the buffer is not large enough to hold the
digest, a new buffer is allocated and returned.
The algorithm state is always reset after a call to
binaryDigest. Use the digestSize method to find out how
large the buffer has to be.
- uint digestSize() [abstract] ¶
-
Returns the size in bytes of the digest
the size of the digest in bytes
Returns the size of the digest.
- char[] hexDigest(char[] buffer = null) ¶
-
Computes the digest as a hex string and resets the state
buffer | a buffer can be supplied in which the digest
will be written. It needs to be able to hold
2 * digestSize chars |
If the buffer is not large enough to hold the hex digest,
a new buffer is allocated and returned. The algorithm
state is always reset after a call to hexDigest.