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,82 @@
package com.infendro.hash.blake
import kotlin.test.Test
import kotlin.test.assertContentEquals
import kotlin.test.assertEquals
class `Blake-384 Test` {
val function = `Blake-384`
@Test
fun `bytes and block`() {
assertEquals(48, function.bytes)
assertEquals(384, function.bits)
assertEquals(128, function.block)
}
@Test
fun `empty bytearray`() {
val expected = ubyteArrayOf(
0xc6U, 0xcbU, 0xd8U, 0x9cU,
0x92U, 0x6aU, 0xb5U, 0x25U,
0xc2U, 0x42U, 0xe6U, 0x62U,
0x1fU, 0x2fU, 0x5fU, 0xa7U,
0x3aU, 0xa4U, 0xafU, 0xe3U,
0xd9U, 0xe2U, 0x4aU, 0xedU,
0x72U, 0x7fU, 0xaaU, 0xadU,
0xd6U, 0xafU, 0x38U, 0xb6U,
0x20U, 0xbdU, 0xb6U, 0x23U,
0xddU, 0x2bU, 0x47U, 0x88U,
0xb1U, 0xc8U, 0x08U, 0x69U,
0x84U, 0xafU, 0x87U, 0x06U,
)
val actual = function.hash(
UByteArray(0)
)
assertContentEquals(expected, actual)
}
@Test
fun `one block`() {
val expected = ubyteArrayOf(
0x10U, 0x28U, 0x1fU, 0x67U,
0xe1U, 0x35U, 0xe9U, 0x0aU,
0xe8U, 0xe8U, 0x82U, 0x25U,
0x1aU, 0x35U, 0x55U, 0x10U,
0xa7U, 0x19U, 0x36U, 0x7aU,
0xd7U, 0x02U, 0x27U, 0xb1U,
0x37U, 0x34U, 0x3eU, 0x1bU,
0xc1U, 0x22U, 0x01U, 0x5cU,
0x29U, 0x39U, 0x1eU, 0x85U,
0x45U, 0xb5U, 0x27U, 0x2dU,
0x13U, 0xa7U, 0xc2U, 0x87U,
0x9dU, 0xa3U, 0xd8U, 0x07U
)
val actual = function.hash(
UByteArray(1)
)
assertContentEquals(expected, actual)
}
@Test
fun `two blocks`() {
val expected = ubyteArrayOf(
0x0bU, 0x98U, 0x45U, 0xddU,
0x42U, 0x95U, 0x66U, 0xcdU,
0xabU, 0x77U, 0x2bU, 0xa1U,
0x95U, 0xd2U, 0x71U, 0xefU,
0xfeU, 0x2dU, 0x02U, 0x11U,
0xf1U, 0x69U, 0x91U, 0xd7U,
0x66U, 0xbaU, 0x74U, 0x94U,
0x47U, 0xc5U, 0xcdU, 0xe5U,
0x69U, 0x78U, 0x0bU, 0x2dU,
0xaaU, 0x66U, 0xc4U, 0xb2U,
0x24U, 0xa2U, 0xecU, 0x2eU,
0x5dU, 0x09U, 0x17U, 0x4cU
)
val actual = function.hash(
UByteArray(144)
)
assertContentEquals(expected, actual)
}
}