Files
zeekay 6f42074e06 Merge hanzo/mpc additions: ConsensusKV, HSM providers, policy engine, rename CLI to mpc-cli
- pkg/infra: Add abstract KV interface, ConsensusKV (dual-cert BFT with
  Ed25519 + ML-DSA-65), NatsKV, ConsulKVAdapter, HybridKV, SQLiteMeta
  with full test coverage
- pkg/hsm: Add Provider interface and implementations for AWS KMS,
  GCP Cloud KMS, Azure Key Vault, Zymbit HSM, Hanzo KMS, and file-based
  providers with registry and tests. Rename existing FileProvider to
  FilePasswordProvider to avoid collision with new Provider interface
- pkg/policy: Add transaction governance engine with signers, roles,
  spending limits, whitelist/blacklist, time windows, rate limiting,
  approval workflow, audit log, and FHE private policy evaluation
- contracts: Add ThresholdPolicy.sol for on-chain policy enforcement
- cmd: Rename lux-mpc-cli to mpc-cli
- Makefile: Update build targets for mpc-cli
2025-12-28 03:12:38 -08:00

25 lines
606 B
Go

package hsm
import "fmt"
// NewProvider creates an HSM provider from configuration.
// Returns a FileProvider by default when no provider is specified.
func NewProvider(cfg Config) (Provider, error) {
switch cfg.Provider {
case "aws":
return NewAWSProvider(cfg.AWS)
case "gcp":
return NewGCPProvider(cfg.GCP)
case "azure":
return NewAzureProvider(cfg.Azure)
case "zymbit":
return NewZymbitProvider(cfg.Zymbit)
case "kms":
return NewKMSProvider(cfg.KMS)
case "file", "":
return NewFileProvider(cfg.File)
default:
return nil, fmt.Errorf("hsm: unknown provider %q", cfg.Provider)
}
}