36 lines
948 B
Kotlin
36 lines
948 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 = ubyteArrayOf(
|
|
0xf7U, 0xbcU, 0x83U, 0xf4U,
|
|
0x30U, 0x53U, 0x84U, 0x24U,
|
|
0xb1U, 0x32U, 0x98U, 0xe6U,
|
|
0xaaU, 0x6fU, 0xb1U, 0x43U,
|
|
0xefU, 0x4dU, 0x59U, 0xa1U,
|
|
0x49U, 0x46U, 0x17U, 0x59U,
|
|
0x97U, 0x47U, 0x9dU, 0xbcU,
|
|
0x2dU, 0x1aU, 0x3cU, 0xd8U,
|
|
).asByteArray()
|
|
val actual = hmac.hash(
|
|
"key".encodeToByteArray(),
|
|
"The quick brown fox jumps over the lazy dog".encodeToByteArray(),
|
|
)
|
|
assertContentEquals(expected, actual)
|
|
}
|
|
}
|