32 lines
885 B
Kotlin
32 lines
885 B
Kotlin
package com.infendro.mac
|
|
|
|
import com.infendro.hash.sha2.`SHA-256`
|
|
import kotlin.test.Test
|
|
import kotlin.test.assertContentEquals
|
|
import kotlin.test.assertEquals
|
|
|
|
class `HMAC Test` {
|
|
val hmac = HMAC(`SHA-256`)
|
|
|
|
@Test
|
|
fun bytes() {
|
|
assertEquals(32, hmac.bytes)
|
|
assertEquals(256, hmac.bits)
|
|
}
|
|
|
|
@Test
|
|
fun example() {
|
|
val expected = byteArrayOf(
|
|
-0x09, -0x44, -0x7d, -0x0c, +0x30, +0x53, -0x7c, +0x24,
|
|
-0x4f, +0x32, -0x68, -0x1a, -0x56, +0x6f, -0x4f, +0x43,
|
|
-0x11, +0x4d, +0x59, -0x5f, +0x49, +0x46, +0x17, +0x59,
|
|
-0x69, +0x47, -0x63, -0x44, +0x2d, +0x1a, +0x3c, -0x28,
|
|
)
|
|
val actual = hmac.hash(
|
|
"key".encodeToByteArray(),
|
|
"The quick brown fox jumps over the lazy dog".encodeToByteArray(),
|
|
)
|
|
assertContentEquals(expected, actual)
|
|
}
|
|
}
|