shake128Of

Convience alias for std.digest.digest using the SHA-3 implementation.

shake128Of
(
T...
)
()

Examples

digest! wrappers

ubyte[28] hash224 = sha3_224Of("abc");
assert(hash224 == digest!SHA3_224("abc"));

ubyte[32] hash256 = sha3_256Of("abc");
assert(hash256 == digest!SHA3_256("abc"));

ubyte[48] hash384 = sha3_384Of("abc");
assert(hash384 == digest!SHA3_384("abc"));

ubyte[64] hash512 = sha3_512Of("abc");
assert(hash512 == digest!SHA3_512("abc"));

ubyte[16] shakeHash128 = shake128Of("abc");
assert(shakeHash128 == digest!SHAKE128("abc"));

ubyte[32] shakeHash256 = shake256Of("abc");
assert(shakeHash256 == digest!SHAKE256("abc"));

Structures

import std.conv : hexString;

SHA3_224 dgst_sha3_224;
dgst_sha3_224.put(cast(ubyte[]) "abcdef");
dgst_sha3_224.start();
dgst_sha3_224.put(cast(ubyte[]) "");
assert(dgst_sha3_224.finish() == cast(ubyte[]) hexString!
    "6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7");

SHA3_256 dgst_sha3_256;
dgst_sha3_256.put(cast(ubyte[]) "abcdef");
dgst_sha3_256.start();
dgst_sha3_256.put(cast(ubyte[]) "");
assert(dgst_sha3_256.finish() == cast(ubyte[]) hexString!
    "a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a");

SHA3_384 dgst_sha3_384;
dgst_sha3_384.put(cast(ubyte[]) "abcdef");
dgst_sha3_384.start();
dgst_sha3_384.put(cast(ubyte[]) "");
assert(dgst_sha3_384.finish() == cast(ubyte[]) hexString!(
    "0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2a"
    ~"c3713831264adb47fb6bd1e058d5f004"));

SHA3_512 dgst_sha3_512;
dgst_sha3_512.put(cast(ubyte[]) "abcdef");
dgst_sha3_512.start();
dgst_sha3_512.put(cast(ubyte[]) "");
assert(dgst_sha3_512.finish() == cast(ubyte[]) hexString!(
    "a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a6"~
    "15b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26"));

SHAKE128 dgst_shake128;
dgst_shake128.put(cast(ubyte[]) "abcdef");
dgst_shake128.start();
dgst_shake128.put(cast(ubyte[]) "");
assert(dgst_shake128.finish() == cast(ubyte[]) hexString!
    "7f9c2ba4e88f827d616045507605853e");

SHAKE256 dgst_shake256;
dgst_shake256.put(cast(ubyte[]) "abcdef");
dgst_shake256.start();
dgst_shake256.put(cast(ubyte[]) "");
assert(dgst_shake256.finish() == cast(ubyte[]) hexString!
    "46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762f");

"Of" wrappers like sha3_224Of

1 import std.conv : hexString;
2 
3 immutable string a = "a";
4 
5 auto digest224      = sha3_224Of(a);
6 assert(digest224 == cast(ubyte[]) hexString!
7     "9e86ff69557ca95f405f081269685b38e3a819b309ee942f482b6a8b");
8 auto digest256      = sha3_256Of(a);
9 assert(digest256 == cast(ubyte[]) hexString!
10     "80084bf2fba02475726feb2cab2d8215eab14bc6bdd8bfb2c8151257032ecd8b");
11 auto digest384      = sha3_384Of(a);
12 assert(digest384 == cast(ubyte[]) hexString!(
13     "1815f774f320491b48569efec794d249eeb59aae46d22bf77dafe25c5edc28d7"~
14     "ea44f93ee1234aa88f61c91912a4ccd9"));
15 auto digest512      = sha3_512Of(a);
16 assert(digest512 == cast(ubyte[]) hexString!(
17     "697f2d856172cb8309d6b8b97dac4de344b549d4dee61edfb4962d8698b7fa80"~
18     "3f4f93ff24393586e28b5b957ac3d1d369420ce53332712f997bd336d09ab02a"));
19 auto digestshake128 = shake128Of(a);
20 assert(digestshake128 == cast(ubyte[]) hexString!
21     "85c8de88d28866bf0868090b3961162b");
22 auto digestshake256 = shake256Of(a);
23 assert(digestshake256 == cast(ubyte[]) hexString!(
24     "867e2cb04f5a04dcbd592501a5e8fe9ceaafca50255626ca736c138042530ba4"));
25 
26 immutable string abc = "abc";
27 
28 digest224      = sha3_224Of(abc);
29 assert(digest224 == cast(ubyte[]) hexString!
30     "e642824c3f8cf24ad09234ee7d3c766fc9a3a5168d0c94ad73b46fdf");
31 digest256      = sha3_256Of(abc);
32 assert(digest256 == cast(ubyte[]) hexString!
33     "3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532");
34 digest384      = sha3_384Of(abc);
35 assert(digest384 == cast(ubyte[]) hexString!(
36     "ec01498288516fc926459f58e2c6ad8df9b473cb0fc08c2596da7cf0e49be4b2"~
37     "98d88cea927ac7f539f1edf228376d25"));
38 digest512      = sha3_512Of(abc);
39 assert(digest512 == cast(ubyte[]) hexString!(
40     "b751850b1a57168a5693cd924b6b096e08f621827444f70d884f5d0240d2712e"~
41     "10e116e9192af3c91a7ec57647e3934057340b4cf408d5a56592f8274eec53f0"));
42 digestshake128 = shake128Of(abc);
43 assert(digestshake128 == cast(ubyte[]) hexString!
44     "5881092dd818bf5cf8a3ddb793fbcba7");
45 digestshake256 = shake256Of(abc);
46 assert(digestshake256 == cast(ubyte[]) hexString!(
47     "483366601360a8771c6863080cc4114d8db44530f8f1e1ee4f94ea37e78b5739"));
48 
49 immutable string longString = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
50 
51 digest224      = sha3_224Of(longString);
52 assert(digest224 == cast(ubyte[]) hexString!
53     "8a24108b154ada21c9fd5574494479ba5c7e7ab76ef264ead0fcce33");
54 digest256      = sha3_256Of(longString);
55 assert(digest256 == cast(ubyte[]) hexString!
56     "41c0dba2a9d6240849100376a8235e2c82e1b9998a999e21db32dd97496d3376");
57 digest384      = sha3_384Of(longString);
58 assert(digest384 == cast(ubyte[]) hexString!(
59     "991c665755eb3a4b6bbdfb75c78a492e8c56a22c5c4d7e429bfdbc32b9d4ad5a"~
60     "a04a1f076e62fea19eef51acd0657c22"));
61 digest512      = sha3_512Of(longString);
62 assert(digest512 == cast(ubyte[]) hexString!(
63     "04a371e84ecfb5b8b77cb48610fca8182dd457ce6f326a0fd3d7ec2f1e91636d"~
64     "ee691fbe0c985302ba1b0d8dc78c086346b533b49c030d99a27daf1139d6e75e"));
65 digestshake128 = shake128Of(longString);
66 assert(digestshake128 == cast(ubyte[]) hexString!
67     "1a96182b50fb8c7e74e0a707788f55e9");
68 digestshake256 = shake256Of(longString);
69 assert(digestshake256 == cast(ubyte[]) hexString!(
70     "4d8c2dd2435a0128eefbb8c36f6f87133a7911e18d979ee1ae6be5d4fd2e3329"));
71 
72 ubyte[] onemilliona = new ubyte[1_000_000];
73 onemilliona[] = 'a';
74 
75 digest224      = sha3_224Of(onemilliona);
76 assert(digest224 == cast(ubyte[]) hexString!
77     "d69335b93325192e516a912e6d19a15cb51c6ed5c15243e7a7fd653c");
78 digest256      = sha3_256Of(onemilliona);
79 assert(digest256 == cast(ubyte[]) hexString!
80     "5c8875ae474a3634ba4fd55ec85bffd661f32aca75c6d699d0cdcb6c115891c1");
81 digest384      = sha3_384Of(onemilliona);
82 assert(digest384 == cast(ubyte[]) hexString!(
83     "eee9e24d78c1855337983451df97c8ad9eedf256c6334f8e948d252d5e0e7684"~
84     "7aa0774ddb90a842190d2c558b4b8340"));
85 digest512      = sha3_512Of(onemilliona);
86 assert(digest512 == cast(ubyte[]) hexString!(
87     "3c3a876da14034ab60627c077bb98f7e120a2a5370212dffb3385a18d4f38859"~
88     "ed311d0a9d5141ce9cc5c66ee689b266a8aa18ace8282a0e0db596c90b0a7b87"));
89 digestshake128 = shake128Of(onemilliona);
90 assert(digestshake128 == cast(ubyte[]) hexString!
91     "9d222c79c4ff9d092cf6ca86143aa411");
92 digestshake256 = shake256Of(onemilliona);
93 assert(digestshake256 == cast(ubyte[]) hexString!(
94     "3578a7a4ca9137569cdf76ed617d31bb994fca9c1bbf8b184013de8234dfd13a"));

Meta