diff --git a/build.gradle.kts b/build.gradle.kts index e229a86..247cf6a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,6 +23,9 @@ kotlin { implementation(libs.hash) implementation(libs.bytearray) } + commonTest.dependencies { + implementation(libs.test) + } } compilerOptions { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b02d28d..a6ad94e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] kotlin = "2.1.20" -hash = "1.3.1" -bytearray = "1.2.0" +hash = "1.3.2" +bytearray = "1.2.2" [plugins] multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } @@ -9,3 +9,4 @@ multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotl [libraries] hash = { module = "com.infendro:hash", version.ref = "hash" } bytearray = { module = "com.infendro:bytearray", version.ref = "bytearray" } +test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } diff --git a/src/commonMain/kotlin/com/infendro/mac/MAC.kt b/src/commonMain/kotlin/com/infendro/mac/MAC.kt index 2f44ba2..c26424b 100644 --- a/src/commonMain/kotlin/com/infendro/mac/MAC.kt +++ b/src/commonMain/kotlin/com/infendro/mac/MAC.kt @@ -2,8 +2,6 @@ package com.infendro.mac abstract class MAC { abstract val bytes: Int - - @Suppress("UNUSED") val bits: Int get() = bytes * 8 diff --git a/src/commonTest/kotlin/com/infendro/mac/HMAC.kt b/src/commonTest/kotlin/com/infendro/mac/HMAC.kt new file mode 100644 index 0000000..a6f404e --- /dev/null +++ b/src/commonTest/kotlin/com/infendro/mac/HMAC.kt @@ -0,0 +1,36 @@ +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 `hash() - example`() { + assertContentEquals( + 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, + ), + hmac.hash( + "key".encodeToByteArray().asUByteArray(), + "The quick brown fox jumps over the lazy dog".encodeToByteArray().asUByteArray() + ) + ) + } +}