| @safe unittest | |
| { | |
| import std.digest.ripemd; | |
| //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(); | |
| } | |
| @safe unittest | |
| { | |
| import std.digest.ripemd; | |
| //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(); | |
| } | |
| @safe unittest | |
| { | |
| import std.digest.ripemd; | |
| //Simple example, hashing a string using ripemd160Of helper function | |
| ubyte[20] hash = ripemd160Of("abc"); | |
| //Let's get a hash string | |
| assert(toHexString(hash) == "8EB208F7E05D987A9B044A8E98C6B087F15A0BFC"); | |
| } | |
| @safe unittest | |
| { | |
| import std.digest.ripemd; | |
| //Using the basic API | |
| RIPEMD160 hash; | |
| hash.start(); | |
| ubyte[1024] data; | |
| //Initialize data here... | |
| hash.put(data); | |
| ubyte[20] result = hash.finish(); | |
| } | |
| @safe unittest | |
| { | |
| import std.digest.ripemd; | |
| //Let's use the template features: | |
| void doSomething(T)(ref T hash) | |
| if (isDigest!T) | |
| { | |
| hash.put(cast(ubyte) 0); | |
| } | |
| RIPEMD160 md; | |
| md.start(); | |
| doSomething(md); | |
| assert(toHexString(md.finish()) == "C81B94933420221A7AC004A90242D8B1D3E5070D"); | |
| } | |
| @safe unittest | |
| { | |
| import std.digest.ripemd; | |
| //Simple example | |
| RIPEMD160 hash; | |
| hash.start(); | |
| hash.put(cast(ubyte) 0); | |
| ubyte[20] result = hash.finish(); | |
| assert(toHexString(result) == "C81B94933420221A7AC004A90242D8B1D3E5070D"); | |
| } | |
| @safe unittest | |
| { | |
| import std.digest.ripemd; | |
| ubyte[20] hash = ripemd160Of("abc"); | |
| assert(hash == digest!RIPEMD160("abc")); | |
| } | |
| @safe unittest | |
| { | |
| import std.digest.ripemd; | |
| //Simple example, hashing a string using Digest.digest helper function | |
| auto md = new RIPEMD160Digest(); | |
| ubyte[] hash = md.digest("abc"); | |
| //Let's get a hash string | |
| assert(toHexString(hash) == "8EB208F7E05D987A9B044A8E98C6B087F15A0BFC"); | |
| } | |
| @system unittest | |
| { | |
| import std.digest.ripemd; | |
| //Let's use the OOP features: | |
| void test(Digest dig) | |
| { | |
| dig.put(cast(ubyte) 0); | |
| } | |
| auto md = new RIPEMD160Digest(); | |
| test(md); | |
| //Let's use a custom buffer: | |
| ubyte[20] buf; | |
| ubyte[] result = md.finish(buf[]); | |
| assert(toHexString(result) == "C81B94933420221A7AC004A90242D8B1D3E5070D"); | |
| } | |