Keccak512

Undocumented in source.
alias Keccak512 = Keccak!512

Examples

Test Keccak

import dcrypt.util.encoders.hex;


immutable string[] plaintexts = ["","","","",
	"00",
	"0000000000000000000000000000000000000000000000000000000000000000",
	"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
];
immutable uint[] bitLen = [224,256,384,512, 256, 256,512];


immutable string[] hexHashes = [
	"f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd",
	"c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
	"2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff",
	"0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e",
	"bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a", // 00
	"290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563", // 32x0
	"a8620b2ebeca41fbc773bb837b5e724d6eb2de570d99858df0d7d97067fb8103b21757873b735097b35d3bea8fd1c359a9e8a63c1540c76c9784cf8d975e995c",
];

Digest[] digests = [
	new Keccak224Digest,
	new Keccak256Digest,
	new Keccak384Digest,
	new Keccak512Digest,
	new Keccak256Digest,
	new Keccak256Digest,
	new Keccak512Digest
];

for(size_t i = 0; i < plaintexts.length; ++i) {
	Digest digest = digests[i];
	ubyte[] plain = hexDecode(plaintexts[i]);
	ubyte[] expectedHash = hexDecode(hexHashes[i]);

	digest.start();
	digest.put(plain);

	ubyte[] actualHash = digest.doFinal();

	assert(expectedHash == actualHash, "produced wrong hash: " ~ toHexStr(actualHash)
		~ " instead of " ~ toHexStr(expectedHash));
}

Meta