mirror of
https://github.com/luxfi/accel.git
synced 2026-10-30 17:03:45 +00:00
Adds two layers for HQC (NIST PQC Round-4 selected, NIST IR 8528):
ops/code/ Go binding to luxcpp/gpu's libluxgpu_hqc.a — KEM batch
entry (keypair_batch, encaps_batch, decaps_batch) plus
low-level kernels (gf2_polymul, reed_solomon_decode,
reed_muller_decode). cgo / no-cgo variants per the
accel build-tag convention.
hqc/ Thin re-export of ops/code under HQC-named symbols, so
callers can import accel/hqc instead of accel/ops/code.
No duplication — types are aliased, helpers forward.
Both layers are byte-equal to the PQClean reference under
luxfi/crypto/hqc/pqclean. Validators reach consensus on encapsulation
ciphertexts, so byte-equality with PQClean is a hard requirement.
Consumed by luxfi/crypto/hqc/gpu_cgo.go (cgo single-shot polymul path)
and luxfi/crypto/hqc/gpu.go (batch KEM dispatch).