Skip to content

Commit e897668

Browse files
committed
Support HKDF in JDK provider
1 parent 9a3c8e3 commit e897668

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

cryptography-providers/jdk/src/jvmMain/kotlin/JdkCryptographyProvider.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@ internal class JdkCryptographyProvider(
8787
RSA.PKCS1 -> JdkRsaPkcs1(state)
8888
RSA.RAW -> JdkRsaRaw(state)
8989
ECDSA -> JdkEcdsa(state)
90-
ECDH -> JdkEcdh(state)
91-
PBKDF2 -> JdkPbkdf2(state)
90+
ECDH -> JdkEcdh(state)
91+
PBKDF2 -> JdkPbkdf2(state)
92+
HKDF -> JdkHkdf(state, this)
9293
else -> null
9394
}
9495
} as A?
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* Copyright (c) 2024 Oleg Yukhnevich. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
package dev.whyoleg.cryptography.providers.jdk.algorithms
6+
7+
import dev.whyoleg.cryptography.*
8+
import dev.whyoleg.cryptography.algorithms.*
9+
import dev.whyoleg.cryptography.providers.base.algorithms.*
10+
import dev.whyoleg.cryptography.providers.jdk.*
11+
12+
internal class JdkHkdf(
13+
private val state: JdkCryptographyState,
14+
provider: CryptographyProvider,
15+
) : BaseHkdf(provider) {
16+
override fun digestSize(digest: CryptographyAlgorithmId<Digest>): Int {
17+
return state.messageDigest(digest.name).use { it.digestLength }
18+
}
19+
}

cryptography-providers/jdk/src/jvmMain/kotlin/algorithms/JdkHmac.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ internal class JdkHmac(
4040
}
4141
}
4242

43-
private fun CryptographyAlgorithmId<Digest>.blockSize(): Int = when (this) {
43+
internal fun CryptographyAlgorithmId<Digest>.blockSize(): Int = when (this) {
4444
SHA1 -> 64
4545
SHA224 -> 64
4646
SHA256 -> 64

0 commit comments

Comments
 (0)