Files
Claude 9ca2259f76 refactor!: take crypto primitives from crypto-kmp
Quartz's SHA, HMAC, HKDF, AES, ChaCha20/Poly1305, X25519, Ed25519,
digest and secure-random code moved to vitorpamplona/crypto-kmp, which
quic-kmp now uses too, so quic no longer pulls in all of Quartz.
Quartz depends on com.vitorpamplona.crypto:crypto 1.0.0 as api; every
import moves to com.vitorpamplona.crypto.* with no shims. secp256k1
stays in Quartz.

What stayed in Quartz or its callers:
- NIP-44's 76-byte HKDF expansion (Hkdf.fastExpand, now MessageKey in
  nip44Encryption/crypto/Nip44MessageKey.kt).
- AESGCM.copyUsingUTF8Nonce, the Blossom workaround, as a private
  extension in EncryptedBlobInterceptor.
- NostrCipher is now crypto-kmp's SymmetricCipher.

quic-kmp 2.0.0 drops its Quartz dependency and logs through QuicLog, so
QuicLogBridge (commons jvmAndroid) routes those lines into Quartz's Log,
installed next to Log.minLevel on Android, desktop and amy. Lines below
Log.minLevel are skipped before their message is built.

-PcryptoKmpDir=../crypto-kmp builds a local crypto-kmp checkout, like
-PquicKmpDir does for quic.

Needs crypto-kmp 1.0.0 and quic-kmp 2.0.0 on Maven Central before CI
can resolve them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017FiX3CsiEsvjJ7zHNHD3Kk
2026-10-20 23:01:13 +00:00
..