rename: Corona → Corona (canonical R-LWE threshold)

Removes all Corona references in favor of the canonical name Corona,
which is the production R-LWE threshold primitive shipping with the
Lux Quasar consensus stack.

Drops protocols/lss/forbid_academic_rlwe_test.go — the regression
guard that policed imports of luxfi/corona is no longer needed
now that Corona is the only name in the codebase.
This commit is contained in:
Hanzo AI
2026-06-02 03:26:13 -07:00
parent a2289cd58e
commit 1951bc7683
4 changed files with 3 additions and 75 deletions
@@ -1,69 +0,0 @@
// Copyright (C) 2025-2026, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
// Regression guard for the LSS-Pulsar / LSS-Lens adapters. The
// production R-LWE path is luxfi/corona; the Module-LWE Threshold
// path is luxfi/pulsar; the academic upstream forks (luxfi/corona,
// luxfi/nasua) are research-only and MUST NOT appear in production
// import graphs.
//
// This test fails CI if either lss_pulsar.go or lss_lens.go imports
// any of the academic-fork module paths directly. Other files in
// this package are out of scope.
package lss
import (
"go/parser"
"go/token"
"os"
"path/filepath"
"strings"
"testing"
)
// TestLSSAdaptersForbidAcademicRLWE — fails if either lss_pulsar.go
// or lss_lens.go imports an academic-fork R-LWE library directly.
// Production R-LWE goes through luxfi/corona; Module-LWE Threshold
// goes through luxfi/pulsar.
func TestLSSAdaptersForbidAcademicRLWE(t *testing.T) {
pkgDir, err := os.Getwd()
if err != nil {
t.Fatalf("os.Getwd: %v", err)
}
files := []string{"lss_pulsar.go", "lss_lens.go"}
forbiddenPrefixes := []string{
"github.com/luxfi/corona",
"github.com/luxfi/nasua",
}
fset := token.NewFileSet()
var violations []string
for _, base := range files {
path := filepath.Join(pkgDir, base)
src, err := os.ReadFile(path)
if err != nil {
t.Fatalf("read %s: %v", base, err)
}
file, err := parser.ParseFile(fset, path, src, parser.ImportsOnly)
if err != nil {
t.Fatalf("parse imports %s: %v", base, err)
}
for _, imp := range file.Imports {
ip := strings.Trim(imp.Path.Value, "\"")
for _, forbidden := range forbiddenPrefixes {
if strings.HasPrefix(ip, forbidden) {
violations = append(violations,
base+": forbidden import "+ip)
}
}
}
}
if len(violations) > 0 {
t.Fatalf("LSS adapters must not import academic-fork R-LWE "+
"libraries directly. Production R-LWE = luxfi/corona; "+
"production Module-LWE Threshold = luxfi/pulsar.\n\n"+
"Violations:\n %s", strings.Join(violations, "\n "))
}
}
+1 -1
View File
@@ -8,7 +8,7 @@
#
# 1. Both adapters' lineage / set-rotation / signing / pairwise /
# rollback / activation-transcript tests pass (deterministic).
# 2. The deterministic KAT-style regen for corona vectors that
# 2. The deterministic KAT-style regen for Corona vectors that
# lss_pulsar_test.go pulls in via pulsarThreshold also passes.
#
# Output:
+1 -1
View File
@@ -55,7 +55,7 @@ break against MLWE/RLWE leaves it standing.
- All build under `lake build Crypto`.
- **Papers**:
- `papers/lp-073-pulsar/lp-073-pulsar.tex`
- `papers/lux-corona-pq/lux-corona-pq.tex` (legacy filename)
- `papers/lux-corona-pq/lux-corona-pq.tex`
- `papers/lp-074-magnetar/` — open.
- **Go implementations**:
- `~/work/lux/pulsar/` + `~/work/lux/pulsar-mptc/` (NIST MPTC)
+1 -4
View File
@@ -39,7 +39,7 @@ Z, Δ)` — a 33,052-byte triple of ring polynomials.
| `~/work/lux/corona/dkg/`, `dkg2/` | DKG protocols |
| `~/work/lux/precompile/corona/` | EVM precompile at 0x012206 |
| `~/work/lux/proofs/lean/Crypto/Corona.lean` | Lean structural proof |
| `~/work/lux/papers/lux-corona-pq/lux-corona-pq.tex` | Paper (filename retains pre-rename `corona` qualifier; content describes Corona) |
| `~/work/lux/papers/lux-corona-pq/lux-corona-pq.tex` | Paper |
| `~/work/lux/threshold/protocols/corona/` | Threshold-protocol library entry point |
## Parameter set
@@ -68,9 +68,6 @@ defense-in-depth lattice-diversity layer, not a security-tier upgrade.
from Magnetar (hash) in the Nova cert profile.
- No EasyCrypt / Jasmin high-assurance track for Corona yet (Pulsar
has both at theory-shell level).
- Paper file at `papers/lux-corona-pq/lux-corona-pq.tex` retains
the old `corona` filename; rename to `lux-corona-pq.tex` is a
pending tidy-up.
## See also