mirror of
https://github.com/luxfi/threshold.git
synced 2026-10-30 15:15:53 +00:00
New package wires luxfi/mpc/{cc/attest, pkg/kms, pkg/hsm, pkg/approval}
into a Signer whose output is byte-identical to single-party FIPS 205
SLH-DSA SignDeterministic. The master seed lives sealed-at-rest in
hsm.Provider and is only ever unwrapped after:
* approval.ApprovalProvider.ApproveIntent (out-of-band executive gate)
* kms.ReleaseGate.Issue + Release (RIM + hardware allowlist, single-use
nonce, cc/attest chain verify of the SEV-SNP / TDX / NRAS quote)
* hsm.Provider.GetKey returns the wrapped seed inside the attested TEE
Composition (not inheritance):
Signer struct { gate kms.ReleaseGate; hsmP hsm.Provider;
appr approval.ApprovalProvider; cfg Config }
Permissionless paths (magnetar.ValidatorSign, magnetar.Combine THBS-SE)
are UNAFFECTED. This is the opt-in institutional-custody extension
binding key release to verifiable hardware attestation. Use cases:
M-Chain bridge custody, A-Chain confidential-compute oracle.
Test surface drives the full chain end-to-end with the same committed
AMD Milan SEV-SNP fixtures the cc/attest verifier_test uses (1184 B
report + 1360 B VCEK). 9 tests + 6 Config sub-tests; t.Parallel + a
package TestMain that exports MPC_LOCAL_APPROVAL=true.
13 lines
415 B
Go
13 lines
415 B
Go
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
package slhdsatee
|
|
|
|
import "golang.org/x/crypto/curve25519"
|
|
|
|
// curve25519BasepointMul is a test-only helper that returns the
|
|
// public half of a clamped X25519 private scalar. Lives in a
|
|
// _test.go file so the production package surface does not export it.
|
|
func curve25519BasepointMul(priv []byte) ([]byte, error) {
|
|
return curve25519.X25519(priv, curve25519.Basepoint)
|
|
}
|