mirror of
https://github.com/arnaucube/go-iden3-crypto.git
synced 2026-02-07 11:36:41 +01:00
Merge pull request #33 from iden3/feature/pkcomp-scanvalue
Add scanner/valuer interface to babyjub.PublicKeyComp
This commit is contained in:
@@ -354,3 +354,21 @@ func (pk PublicKey) Value() (driver.Value, error) {
|
||||
comp := pk.Compress()
|
||||
return comp[:], nil
|
||||
}
|
||||
|
||||
// Scan implements Scanner for database/sql.
|
||||
func (pkComp *PublicKeyComp) Scan(src interface{}) error {
|
||||
srcB, ok := src.([]byte)
|
||||
if !ok {
|
||||
return fmt.Errorf("can't scan %T into PublicKeyComp", src)
|
||||
}
|
||||
if len(srcB) != 32 {
|
||||
return fmt.Errorf("can't scan []byte of len %d into PublicKeyComp, want %d", len(srcB), 32)
|
||||
}
|
||||
copy(pkComp[:], srcB)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Value implements valuer for database/sql.
|
||||
func (pkComp PublicKeyComp) Value() (driver.Value, error) {
|
||||
return pkComp[:], nil
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ func TestSignatureScannerValuer(t *testing.T) {
|
||||
assert.Equal(t, value, scan)
|
||||
}
|
||||
|
||||
func TestPubKeyScannerValuer(t *testing.T) {
|
||||
func TestPublicKeyScannerValuer(t *testing.T) {
|
||||
privKValue := NewRandPrivKey()
|
||||
pubKValue := privKValue.Public()
|
||||
privKScan := NewRandPrivKey()
|
||||
@@ -175,6 +175,21 @@ func TestPubKeyScannerValuer(t *testing.T) {
|
||||
assert.Equal(t, value, scan)
|
||||
}
|
||||
|
||||
func TestPublicKeyCompScannerValuer(t *testing.T) {
|
||||
privKValue := NewRandPrivKey()
|
||||
pubKCompValue := privKValue.Public().Compress()
|
||||
privKScan := NewRandPrivKey()
|
||||
pubKCompScan := privKScan.Public().Compress()
|
||||
var value driver.Valuer
|
||||
var scan sql.Scanner
|
||||
value = &pubKCompValue
|
||||
scan = &pubKCompScan
|
||||
fromDB, err := value.Value()
|
||||
assert.Nil(t, err)
|
||||
assert.Nil(t, scan.Scan(fromDB))
|
||||
assert.Equal(t, value, scan)
|
||||
}
|
||||
|
||||
func BenchmarkBabyjubEddsa(b *testing.B) {
|
||||
var k PrivateKey
|
||||
_, err := hex.Decode(k[:],
|
||||
|
||||
Reference in New Issue
Block a user