package com.infendro.hash.blake import kotlin.test.Test import kotlin.test.assertContentEquals import kotlin.test.assertEquals class `Blake-256 Test` { val function = `Blake-256` @Test fun `bytes and block`() { assertEquals(32, function.bytes) assertEquals(256, function.bits) assertEquals(64, function.block) } @Test fun `empty bytearray`() { val expected = ubyteArrayOf( 0x71U, 0x6fU, 0x6eU, 0x86U, 0x3fU, 0x74U, 0x4bU, 0x9aU, 0xc2U, 0x2cU, 0x97U, 0xecU, 0x7bU, 0x76U, 0xeaU, 0x5fU, 0x59U, 0x08U, 0xbcU, 0x5bU, 0x2fU, 0x67U, 0xc6U, 0x15U, 0x10U, 0xbfU, 0xc4U, 0x75U, 0x13U, 0x84U, 0xeaU, 0x7aU, ).asByteArray() val actual = function.hash( ByteArray(0), ) assertContentEquals(expected, actual) } @Test fun `one block`() { val expected = ubyteArrayOf( 0x0cU, 0xe8U, 0xd4U, 0xefU, 0x4dU, 0xd7U, 0xcdU, 0x8dU, 0x62U, 0xdfU, 0xdeU, 0xd9U, 0xd4U, 0xedU, 0xb0U, 0xa7U, 0x74U, 0xaeU, 0x6aU, 0x41U, 0x92U, 0x9aU, 0x74U, 0xdaU, 0x23U, 0x10U, 0x9eU, 0x8fU, 0x11U, 0x13U, 0x9cU, 0x87U, ).asByteArray() val actual = function.hash( ByteArray(1), ) assertContentEquals(expected, actual) } @Test fun `two blocks`() { val expected = ubyteArrayOf( 0xd4U, 0x19U, 0xbaU, 0xd3U, 0x2dU, 0x50U, 0x4fU, 0xb7U, 0xd4U, 0x4dU, 0x46U, 0x0cU, 0x42U, 0xc5U, 0x59U, 0x3fU, 0xe5U, 0x44U, 0xfaU, 0x4cU, 0x13U, 0x5dU, 0xecU, 0x31U, 0xe2U, 0x1bU, 0xd9U, 0xabU, 0xdcU, 0xc2U, 0x2dU, 0x41U, ).asByteArray() val actual = function.hash( ByteArray(72), ) assertContentEquals(expected, actual) } }