implement blake
This commit is contained in:
70
src/commonTest/kotlin/com/infendro/hash/blake/Blake-256.kt
Normal file
70
src/commonTest/kotlin/com/infendro/hash/blake/Blake-256.kt
Normal 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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user