2 Commits
Author SHA1 Message Date
Hanzo AI 2af1c4d153 audit: secp256k1 vanilla Go canonical is complete (correct prior misread)
The earlier draft listed secp256k1 as a hard violation. That was a
misread. /Users/z/work/lux/crypto/secp256k1/secp256k1.go (build tag
!cgo) is a complete vanilla Go canonical via decred/dcrd/dcrec/secp256k1/v4
covering Sign / RecoverPubkey / VerifySignature / DecompressPubkey /
CompressPubkey -- byte-for-byte parity verified with the cgo libsecp256k1
backend on KAT (deterministic RFC 6979 k, fixed seckey, fixed message;
sig + recovered pub identical between backends).

This matches the audit's own legend (line 16): established Go crypto
crates count as vanilla; decred secp256k1 is in the same class as
circl, gnark-crypto, x/crypto.

Hard violation count drops 4 -> 3. The remaining hard violations are
blake3 (missing), verkle (re-export wrapper), banderwagon (empty dir).

Backend status verified 2026-04-27:
  vanilla (CGO_ENABLED=0): tests pass; sign 67us, recover 362us, verify 557us
  cgo libsecp256k1:        tests pass; sign 24us, recover 63us,  verify 56us

cgo is faster (~3-10x) and stays as opt-in accelerator. Both produce
identical signatures.
2025-12-28 05:03:23 -08:00
Hanzo AI 9affea3b6c audit: per-language canonical impl audit (CTO)
Read-only enumeration of canonical paths across luxcpp/crypto and
lux/crypto. Documents 4 hard violations (blake3 missing, verkle as
upstream re-export, banderwagon empty, secp256k1 cgo-primary) plus
6 luxcpp C++/CPU body gaps and 14 Rust binder gaps.

P0 work to author: verkle, secp256k1, blake3, banderwagon vanilla Go
bodies. Source-to-port cited per file.
2025-12-28 04:37:21 -08:00