| @safe unittest |
| { |
| import std.digest.md; |
| |
| //Template API |
| import std.digest.md; |
| |
| //Feeding data |
| ubyte[1024] data; |
| MD5 md5; |
| md5.start(); |
| md5.put(data[]); |
| md5.start(); //Start again |
| md5.put(data[]); |
| auto hash = md5.finish(); |
| } |
| |
| @safe unittest |
| { |
| import std.digest.md; |
| |
| //OOP API |
| import std.digest.md; |
| |
| auto md5 = new MD5Digest(); |
| ubyte[] hash = md5.digest("abc"); |
| assert(toHexString(hash) == "900150983CD24FB0D6963F7D28E17F72"); |
| |
| //Feeding data |
| ubyte[1024] data; |
| md5.put(data[]); |
| md5.reset(); //Start again |
| md5.put(data[]); |
| hash = md5.finish(); |
| } |
| |
| @safe unittest |
| { |
| import std.digest.md; |
| |
| //Simple example |
| MD5 hash; |
| hash.start(); |
| hash.put(cast(ubyte) 0); |
| ubyte[16] result = hash.finish(); |
| |
| } |
| |
| @safe unittest |
| { |
| import std.digest.md; |
| |
| //Simple example, hashing a string using md5Of helper function |
| ubyte[16] hash = md5Of("abc"); |
| //Let's get a hash string |
| assert(toHexString(hash) == "900150983CD24FB0D6963F7D28E17F72"); |
| } |
| |
| @safe unittest |
| { |
| import std.digest.md; |
| |
| //Using the basic API |
| MD5 hash; |
| hash.start(); |
| ubyte[1024] data; |
| //Initialize data here... |
| hash.put(data); |
| ubyte[16] result = hash.finish(); |
| } |
| |
| @safe unittest |
| { |
| import std.digest.md; |
| |
| //Let's use the template features: |
| void doSomething(T)(ref T hash) |
| if (isDigest!T) |
| { |
| hash.put(cast(ubyte) 0); |
| } |
| MD5 md5; |
| md5.start(); |
| doSomething(md5); |
| assert(toHexString(md5.finish()) == "93B885ADFE0DA089CDF634904FD59F71"); |
| } |
| |
| @safe unittest |
| { |
| import std.digest.md; |
| |
| ubyte[16] hash = md5Of("abc"); |
| assert(hash == digest!MD5("abc")); |
| } |
| |
| @safe unittest |
| { |
| import std.digest.md; |
| |
| //Simple example, hashing a string using Digest.digest helper function |
| auto md5 = new MD5Digest(); |
| ubyte[] hash = md5.digest("abc"); |
| //Let's get a hash string |
| assert(toHexString(hash) == "900150983CD24FB0D6963F7D28E17F72"); |
| } |
| |
| @system unittest |
| { |
| import std.digest.md; |
| |
| //Let's use the OOP features: |
| void test(Digest dig) |
| { |
| dig.put(cast(ubyte) 0); |
| } |
| auto md5 = new MD5Digest(); |
| test(md5); |
| |
| //Let's use a custom buffer: |
| ubyte[16] buf; |
| ubyte[] result = md5.finish(buf[]); |
| assert(toHexString(result) == "93B885ADFE0DA089CDF634904FD59F71"); |
| } |
| |