Refactor signer implementation to use p8k package
Some checks failed
Go / build (push) Has been cancelled
Go / release (push) Has been cancelled

- Replaced all instances of p256k1signer with the new p8k.Signer across various modules, including event creation, policy handling, and database interactions.
- Updated related test cases and benchmarks to ensure compatibility with the new signer interface.
- Bumped version to v0.25.0 to reflect these significant changes and improvements in cryptographic operations.
This commit is contained in:
2025-11-04 20:05:19 +00:00
parent effb3fafc1
commit e0a95ca1cd
70 changed files with 8667 additions and 124 deletions

View File

@@ -17,7 +17,7 @@ import (
"lol.mleku.dev/chk"
"lol.mleku.dev/log"
p256k1signer "p256k1.mleku.dev/signer"
"next.orly.dev/pkg/interfaces/signer/p8k"
"github.com/minio/sha256-simd"
"next.orly.dev/pkg/encoders/bech32encoding"
"next.orly.dev/pkg/encoders/event"
@@ -335,7 +335,10 @@ func NewAggregator(keyInput string, since, until *timestamp.T, bloomFilterFile s
}
// Create signer from private key
signer = p256k1signer.NewP256K1Signer()
var signerErr error
if signer, signerErr = p8k.New(); signerErr != nil {
return nil, fmt.Errorf("failed to create signer: %w", signerErr)
}
if err = signer.InitSec(secretBytes); chk.E(err) {
return nil, fmt.Errorf("failed to initialize signer: %w", err)
}

View File

@@ -21,7 +21,7 @@ import (
"next.orly.dev/pkg/encoders/tag"
"next.orly.dev/pkg/encoders/timestamp"
"next.orly.dev/pkg/protocol/ws"
p256k1signer "p256k1.mleku.dev/signer"
"next.orly.dev/pkg/interfaces/signer/p8k"
)
type BenchmarkConfig struct {
@@ -167,7 +167,11 @@ func runNetworkLoad(cfg *BenchmarkConfig) {
fmt.Printf("worker %d: connected to %s\n", workerID, cfg.RelayURL)
// Signer for this worker
keys := p256k1signer.NewP256K1Signer()
var keys *p8k.Signer
if keys, err = p8k.New(); err != nil {
fmt.Printf("worker %d: signer create failed: %v\n", workerID, err)
return
}
if err := keys.Generate(); err != nil {
fmt.Printf("worker %d: keygen failed: %v\n", workerID, err)
return
@@ -960,7 +964,12 @@ func (b *Benchmark) generateEvents(count int) []*event.E {
now := timestamp.Now()
// Generate a keypair for signing all events
keys := p256k1signer.NewP256K1Signer()
var keys *p8k.Signer
var err error
if keys, err = p8k.New(); err != nil {
fmt.Printf("failed to create signer: %v\n", err)
return nil
}
if err := keys.Generate(); err != nil {
log.Fatalf("Failed to generate keys for benchmark events: %v", err)
}

View File

@@ -10,7 +10,7 @@ import (
"lol.mleku.dev/chk"
"lol.mleku.dev/log"
p256k1signer "p256k1.mleku.dev/signer"
"next.orly.dev/pkg/interfaces/signer/p8k"
"next.orly.dev/pkg/encoders/event"
"next.orly.dev/pkg/encoders/filter"
"next.orly.dev/pkg/encoders/hex"
@@ -44,7 +44,11 @@ func main() {
log.E.F("failed to decode allowed secret key: %v", err)
os.Exit(1)
}
allowedSigner := p256k1signer.NewP256K1Signer()
var allowedSigner *p8k.Signer
if allowedSigner, err = p8k.New(); chk.E(err) {
log.E.F("failed to create allowed signer: %v", err)
os.Exit(1)
}
if err = allowedSigner.InitSec(allowedSecBytes); chk.E(err) {
log.E.F("failed to initialize allowed signer: %v", err)
os.Exit(1)
@@ -55,7 +59,11 @@ func main() {
log.E.F("failed to decode unauthorized secret key: %v", err)
os.Exit(1)
}
unauthorizedSigner := p256k1signer.NewP256K1Signer()
var unauthorizedSigner *p8k.Signer
if unauthorizedSigner, err = p8k.New(); chk.E(err) {
log.E.F("failed to create unauthorized signer: %v", err)
os.Exit(1)
}
if err = unauthorizedSigner.InitSec(unauthorizedSecBytes); chk.E(err) {
log.E.F("failed to initialize unauthorized signer: %v", err)
os.Exit(1)
@@ -136,7 +144,7 @@ func main() {
fmt.Println("\n✅ All tests passed!")
}
func testWriteEvent(ctx context.Context, url string, kindNum uint16, eventSigner, authSigner *p256k1signer.P256K1Signer) error {
func testWriteEvent(ctx context.Context, url string, kindNum uint16, eventSigner, authSigner *p8k.Signer) error {
rl, err := ws.RelayConnect(ctx, url)
if err != nil {
return fmt.Errorf("connect error: %w", err)
@@ -192,7 +200,7 @@ func testWriteEvent(ctx context.Context, url string, kindNum uint16, eventSigner
return nil
}
func testWriteEventUnauthenticated(ctx context.Context, url string, kindNum uint16, eventSigner *p256k1signer.P256K1Signer) error {
func testWriteEventUnauthenticated(ctx context.Context, url string, kindNum uint16, eventSigner *p8k.Signer) error {
rl, err := ws.RelayConnect(ctx, url)
if err != nil {
return fmt.Errorf("connect error: %w", err)
@@ -227,7 +235,7 @@ func testWriteEventUnauthenticated(ctx context.Context, url string, kindNum uint
return nil
}
func testReadEvent(ctx context.Context, url string, kindNum uint16, authSigner *p256k1signer.P256K1Signer) error {
func testReadEvent(ctx context.Context, url string, kindNum uint16, authSigner *p8k.Signer) error {
rl, err := ws.RelayConnect(ctx, url)
if err != nil {
return fmt.Errorf("connect error: %w", err)

View File

@@ -8,7 +8,7 @@ import (
"lol.mleku.dev/chk"
"lol.mleku.dev/log"
p256k1signer "p256k1.mleku.dev/signer"
"next.orly.dev/pkg/interfaces/signer/p8k"
"next.orly.dev/pkg/encoders/event"
"next.orly.dev/pkg/encoders/kind"
"next.orly.dev/pkg/encoders/tag"
@@ -29,7 +29,11 @@ func main() {
}
defer rl.Close()
signer := p256k1signer.NewP256K1Signer()
var signer *p8k.Signer
if signer, err = p8k.New(); chk.E(err) {
log.E.F("signer create error: %v", err)
return
}
if err = signer.Generate(); chk.E(err) {
log.E.F("signer generate error: %v", err)
return

View File

@@ -16,7 +16,7 @@ import (
"time"
"lol.mleku.dev/log"
p256k1signer "p256k1.mleku.dev/signer"
"next.orly.dev/pkg/interfaces/signer/p8k"
"next.orly.dev/pkg/encoders/envelopes/eventenvelope"
"next.orly.dev/pkg/encoders/event"
"next.orly.dev/pkg/encoders/event/examples"
@@ -35,7 +35,7 @@ func randomHex(n int) string {
return hex.Enc(b)
}
func makeEvent(rng *rand.Rand, signer *p256k1signer.P256K1Signer) (*event.E, error) {
func makeEvent(rng *rand.Rand, signer *p8k.Signer) (*event.E, error) {
ev := &event.E{
CreatedAt: time.Now().Unix(),
Kind: kind.TextNote.K,
@@ -293,7 +293,12 @@ func publisherWorker(
src := rand.NewSource(time.Now().UnixNano() ^ int64(id<<16))
rng := rand.New(src)
// Generate and reuse signing key per worker
signer := p256k1signer.NewP256K1Signer()
var signer *p8k.Signer
var err error
if signer, err = p8k.New(); err != nil {
log.E.F("worker %d: signer create error: %v", id, err)
return
}
if err := signer.Generate(); err != nil {
log.E.F("worker %d: signer generate error: %v", id, err)
return