implement blake

This commit is contained in:
2025-12-01 19:40:20 +01:00
parent 8a2848e6e3
commit 324d907d0c
8 changed files with 824 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
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,
)
val actual = function.hash(
UByteArray(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,
)
val actual = function.hash(
UByteArray(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,
)
val actual = function.hash(
UByteArray(72)
)
assertContentEquals(expected, actual)
}
}