ml-dsa key schemes: derive at a bip44 path, sign under a context, address by poseidon2 #14
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent: #2
Scope
Implement
wallet_core::KeySchemeandSignerfor ML-DSA-65 and ML-DSA-87 inwallet-dataonqp-rusty-crystals-dilithiumandqp-rusty-crystals-hdwallet(both parameter-set features). Derivation from a BIP39 seed atm/44'/189189'/account'/change'/index', all hardened. Account id isqp_poseidon_core::hash_bytes(public_key); the ss58 encoding takes the prefix from the chain profile, not a constant. The signer holds its secret in a zeroizing container and redactsDebug.Test vectors: the dev accounts (
crystal_aliceand friends) and the ML-DSA-65/87 cases in thecommonfork's util-crypto tests (m/44'/189189'/0'/0'/1'is 65,.../0'/0'/0'is 87).Acceptance
For each scheme, the derived address matches quantus-cli for the same mnemonic and path, and a signature over a fixed message under
QUANTUS_EXTRINSICverifies withqp-dilithium-crypto's verify function and fails under the empty context.Depends on
Nothing in this repo.