Migrate package imports from next.orly.dev to new orly domain structure; add new varint and binary encoders with comprehensive tests; enhance existing tag and envelope implementations with additional methods, validations, and test coverage; introduce shared test.sh script for streamlined testing across modules.

This commit is contained in:
2025-08-31 16:52:24 +01:00
parent 94383f29e9
commit 91d95c6f1a
202 changed files with 12803 additions and 420 deletions

View File

@@ -4,19 +4,18 @@
package btcec
import (
"crypto.orly/ec/schnorr"
"crypto.orly/ec/secp256k1"
"interfaces.orly/signer"
"lol.mleku.dev/chk"
"lol.mleku.dev/errorf"
btcec3 "next.orly.dev/pkg/crypto/ec"
"next.orly.dev/pkg/crypto/ec/schnorr"
"next.orly.dev/pkg/crypto/ec/secp256k1"
"next.orly.dev/pkg/interfaces/signer"
)
// Signer is an implementation of signer.I that uses the btcec library.
type Signer struct {
SecretKey *secp256k1.SecretKey
PublicKey *secp256k1.PublicKey
BTCECSec *btcec3.SecretKey
BTCECSec *ec.SecretKey
pkb, skb []byte
}
@@ -24,11 +23,11 @@ var _ signer.I = &Signer{}
// Generate creates a new Signer.
func (s *Signer) Generate() (err error) {
if s.SecretKey, err = btcec3.NewSecretKey(); chk.E(err) {
if s.SecretKey, err = ec.NewSecretKey(); chk.E(err) {
return
}
s.skb = s.SecretKey.Serialize()
s.BTCECSec, _ = btcec3.PrivKeyFromBytes(s.skb)
s.BTCECSec, _ = ec.PrivKeyFromBytes(s.skb)
s.PublicKey = s.SecretKey.PubKey()
s.pkb = schnorr.SerializePubKey(s.PublicKey)
return
@@ -44,7 +43,7 @@ func (s *Signer) InitSec(sec []byte) (err error) {
s.SecretKey = secp256k1.SecKeyFromBytes(sec)
s.PublicKey = s.SecretKey.PubKey()
s.pkb = schnorr.SerializePubKey(s.PublicKey)
s.BTCECSec, _ = btcec3.PrivKeyFromBytes(s.skb)
s.BTCECSec, _ = ec.PrivKeyFromBytes(s.skb)
return
}
@@ -143,7 +142,7 @@ func (s *Signer) ECDH(pubkeyBytes []byte) (secret []byte, err error) {
); chk.E(err) {
return
}
secret = btcec3.GenerateSharedSecret(s.BTCECSec, pub)
secret = ec.GenerateSharedSecret(s.BTCECSec, pub)
return
}
@@ -155,7 +154,7 @@ type Keygen struct {
// Generate a new key pair. If the result is suitable, the embedded Signer can have its contents
// extracted.
func (k *Keygen) Generate() (pubBytes []byte, err error) {
if k.Signer.SecretKey, err = btcec3.NewSecretKey(); chk.E(err) {
if k.Signer.SecretKey, err = ec.NewSecretKey(); chk.E(err) {
return
}
k.Signer.PublicKey = k.SecretKey.PubKey()

View File

@@ -6,11 +6,10 @@ import (
"testing"
"time"
"next.orly.dev/pkg/utils"
"crypto.orly/p256k/btcec"
"lol.mleku.dev/chk"
"lol.mleku.dev/log"
"next.orly.dev/pkg/crypto/p256k/btcec"
"utils.orly"
)
func TestSigner_Generate(t *testing.T) {

View File

@@ -3,9 +3,9 @@
package btcec
import (
"encoders.orly/hex"
"interfaces.orly/signer"
"lol.mleku.dev/chk"
"next.orly.dev/pkg/encoders/hex"
"next.orly.dev/pkg/interfaces/signer"
)
func NewSecFromHex[V []byte | string](skh V) (sign signer.I, err error) {