From e329b096baf5b7a72377c187fb6708c537bc6ac8 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 15 Sep 2025 16:21:11 -0400 Subject: [PATCH] Moves the message key to the HKDF function --- .../vitorpamplona/quartz/nip44Encryption/Nip44v2.kt | 10 ++-------- .../quartz/nip44Encryption/crypto/Hkdf.kt | 7 ++++++- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip44Encryption/Nip44v2.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip44Encryption/Nip44v2.kt index 9433108c1..a749f0ed6 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip44Encryption/Nip44v2.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip44Encryption/Nip44v2.kt @@ -99,7 +99,7 @@ class Nip44v2 { ): String = decrypt(EncryptedInfo.decodePayload(payload), conversationKey) fun checkHMacAad( - messageKey: MessageKey, + messageKey: Hkdf.MessageKey, decoded: EncryptedInfo, ) { val calculatedMac = hmacAad(messageKey.hmacKey, decoded.ciphertext, decoded.nonce) @@ -208,13 +208,7 @@ class Nip44v2 { fun getMessageKeys( conversationKey: ByteArray, nonce: ByteArray, - ): MessageKey = hkdf.fastExpand(conversationKey, nonce) - - class MessageKey( - val chachaKey: ByteArray, - val chachaNonce: ByteArray, - val hmacKey: ByteArray, - ) + ): Hkdf.MessageKey = hkdf.fastExpand(conversationKey, nonce) /** @return 32B shared secret */ fun computeConversationKey( diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip44Encryption/crypto/Hkdf.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip44Encryption/crypto/Hkdf.kt index 65bc65bbe..a30c84765 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip44Encryption/crypto/Hkdf.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip44Encryption/crypto/Hkdf.kt @@ -20,7 +20,6 @@ */ package com.vitorpamplona.quartz.nip44Encryption.crypto -import com.vitorpamplona.quartz.nip44Encryption.Nip44v2.MessageKey import java.nio.ByteBuffer import javax.crypto.Mac import javax.crypto.spec.SecretKeySpec @@ -123,4 +122,10 @@ class Hkdf( hmacKey = hmacKey, ) } + + class MessageKey( + val chachaKey: ByteArray, + val chachaNonce: ByteArray, + val hmacKey: ByteArray, + ) }