View source code
Display the source code in std/digest/ripemd.d from which this page was generated on
github.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Page wiki
View or edit the community-maintained wiki page associated with this page.
Module std.digest.ripemd
Computes RIPEMD-160 hashes of arbitrary data. RIPEMD-160 hashes are 20 byte quantities that are like a checksum or CRC, but are more robust.
| Category | Functions |
|---|---|
| Template API | RIPEMD160
|
| OOP API | RIPEMD160Digest |
| Helpers | ripemd160Of |
This module conforms to the APIs defined in . To understand the
differences between the template and the OOP API, see std.digest.digest.
std.digest.digest
This module publicly imports and can be used as a stand-alone
module.
std.digest.digest
CTFE
Digests do not work in CTFE
References
Example
//Template API import std.digest.md; ubyte[20] hash = ripemd160Of("abc"); assert(toHexString(hash) == "8EB208F7E05D987A9B044A8E98C6B087F15A0BFC"); //Feeding data ubyte[1024] data; RIPEMD160 md; md.start(); md.put(data[]); md.start(); //Start again md.put(data[]); hash = md.finish();
Example
//OOP API import std.digest.md; auto md = new RIPEMD160Digest(); ubyte[] hash = md.digest("abc"); assert(toHexString(hash) == "8EB208F7E05D987A9B044A8E98C6B087F15A0BFC"); //Feeding data ubyte[1024] data; md.put(data[]); md.reset(); //Start again md.put(data[]); hash = md.finish();
Functions
| Name | Description |
|---|---|
ripemd160Of
|
This is a convenience alias for std.digest.digest.digest using the
RIPEMD160 implementation.
|
Structs
| Name | Description |
|---|---|
RIPEMD160
|
Template API RIPEMD160 implementation.
See for differences between template and OOP API.
|
Aliases
| Name | Type | Description |
|---|---|---|
RIPEMD160Digest
|
WrapperDigest!(std.digest.ripemd.RIPEMD160)
|
OOP API RIPEMD160 implementation.
See for differences between template and OOP API.
|
Authors
Kai Nacke
The algorithm was designed by Hans Dobbertin, Antoon Bosselaers, and Bart Preneel.
The D implementation is a direct translation of the ANSI C implementation by Antoon Bosselaers.