mirror of
https://github.com/luxfi/mpc.git
synced 2026-09-24 00:26:24 +00:00
Commit82bd565("deployment-mode flag + audit dispatcher") referenced buildHSMSignerConfig at the HSM signer wiring site but the helper file was never staged — same pattern as the missing airgap files repaired under #208. The current main.go works around the gap by passing nil to hsm.NewSigner, which loses the operator-supplied --hsm-signer-key-id and prevents per-provider config promotion. cmd/mpcd/hsm_signer_config.go: - validates provider name against the luxfi/hsm v1.1.3 factory list (aws/gcp/azure, zymbit, yubihsm, nitrokey, pkcs11, kmip, coldcard, foundation, keystone, ngrave, gridplus/lattice, ledger, trezor, tr31, mldsa, local) and the documented aliases. - promotes --hsm-signer-key-id into the canonical config key for each cloud KMS provider (aws.key_id, gcp.crypto_key, azure.key_name). - leaves vendor-specific surface (slot/pin/library, vault URL, transport) to the factory's MPC_HSM_<P>_* env-var fallback so the CLI flag surface stays minimal. cmd/mpcd/main.go: route --hsm-signer through the helper and surface config errors before reaching hsm.NewSigner. cmd/mpcd/hsm_signer_config_test.go: covers cloud-KMS key-id promotion, hardware-wallet empty-map case, alias acceptance, case-insensitive provider names, and rejection of empty + unknown providers. Helper + tests pass under `go test -race -count=1` in isolation. go.sum: refresh github.com/luxfi/edwards25519 v0.1.0 hashes to match proxy.golang.org. Pre-existing checksum drift blocked all `go build` attempts on this branch and on main. Note: cmd/mpcd as a whole still does not compile on this branch — the same82bd565commit also dropped pkg/api/handlers_approval.go without adding the Server.approval field, and pkg/policy/fhe_threshold_decryptor.go references symbols that never landed. Both are out of scope for #227 and will be repaired under follow-up tickets in the same #208-style cleanup.