Skip to content

Commit 11e79b5

Browse files
committed
pss: Renamed SymKey->SymmetricKey. Fixed comments. Removed keccak256 function
1 parent db6ce6d commit 11e79b5

File tree

3 files changed

+23
-28
lines changed

3 files changed

+23
-28
lines changed

pss/crypto/crypto.go

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ type WrapParams struct {
6363
// For asymmetric encryption Receiver is needed.
6464
// For symmetric, SymmetricKey is needed. Sender is not mandatory but used to sign the message in both schemes.
6565
type UnwrapParams struct {
66-
Sender *ecdsa.PublicKey // Private key of sender used for signature validation
67-
Receiver *ecdsa.PrivateKey // Public key of receiver for decryption
66+
Sender *ecdsa.PublicKey // Public key of sender used for signature validation
67+
Receiver *ecdsa.PrivateKey // Private key of receiver for decryption
6868
SymmetricKey []byte // Symmetric key for decryption
6969
}
7070

@@ -89,10 +89,10 @@ type Message interface {
8989
// KeyStore contains key manipulation methods
9090
type KeyStore interface {
9191

92-
// Asymmetric key management
93-
GetSymKey(id string) ([]byte, error)
94-
GenerateSymKey() (string, error)
95-
AddSymKey(bytes []byte) (string, error)
92+
// Symmetric key management
93+
GetSymmetricKey(id string) ([]byte, error)
94+
GenerateSymmetricKey() (string, error)
95+
AddSymmetricKey(bytes []byte) (string, error)
9696

9797
// Key serialization
9898
SerializePublicKey(pub *ecdsa.PublicKey) []byte
@@ -336,7 +336,7 @@ func (crypto *defaultCryptoBackend) sign(rawBytes []byte, key *ecdsa.PrivateKey)
336336
}
337337
rawBytes[0] |= signatureFlag // it is important to set this flag before signing
338338

339-
hash := crypto.keccak256(rawBytes)
339+
hash := ethCrypto.Keccak256(rawBytes)
340340
signature, err := crypto.signHash(hash, key)
341341

342342
if err != nil {
@@ -353,8 +353,8 @@ func isMessageSigned(flags byte) bool {
353353

354354
// === Key store functions ===
355355

356-
// GetSymKey retrieves symmetric key by id from the store
357-
func (crypto *defaultCryptoBackend) GetSymKey(id string) ([]byte, error) {
356+
// GetSymmetricKey retrieves symmetric key by id from the store
357+
func (crypto *defaultCryptoBackend) GetSymmetricKey(id string) ([]byte, error) {
358358
crypto.keyMu.RLock()
359359
defer crypto.keyMu.RUnlock()
360360
if crypto.symKeys[id] != nil {
@@ -363,13 +363,13 @@ func (crypto *defaultCryptoBackend) GetSymKey(id string) ([]byte, error) {
363363
return nil, fmt.Errorf("non-existent key ID")
364364
}
365365

366-
// GenerateSymKey creates a new symmetric, stores it and return its id
367-
func (crypto *defaultCryptoBackend) GenerateSymKey() (string, error) {
366+
// GenerateSymmetricKey creates a new symmetric, stores it and return its id
367+
func (crypto *defaultCryptoBackend) GenerateSymmetricKey() (string, error) {
368368
key, err := generateSecureRandomData(aesKeyLength)
369369
if err != nil {
370370
return "", err
371371
} else if !validateDataIntegrity(key, aesKeyLength) {
372-
return "", fmt.Errorf("error in GenerateSymKey: crypto/rand failed to generate random data")
372+
return "", fmt.Errorf("error in GenerateSymmetricKey: crypto/rand failed to generate random data")
373373
}
374374

375375
id, err := generateRandomKeyID()
@@ -388,7 +388,7 @@ func (crypto *defaultCryptoBackend) GenerateSymKey() (string, error) {
388388
}
389389

390390
// Add a symmetric key to the store generating an id and returning it
391-
func (crypto *defaultCryptoBackend) AddSymKey(key []byte) (string, error) {
391+
func (crypto *defaultCryptoBackend) AddSymmetricKey(key []byte) (string, error) {
392392
if len(key) != aesKeyLength {
393393
return "", fmt.Errorf("wrong key size: %d", len(key))
394394
}
@@ -500,7 +500,7 @@ func (crypto *defaultCryptoBackend) signHash(hash []byte, prv *ecdsa.PrivateKey)
500500
// sigToPub obtains public key from the signed message and the signature
501501
func (crypto *defaultCryptoBackend) sigToPub(signed, sig []byte) (*ecdsa.PublicKey, error) {
502502
defer func() { recover() }() // in case of invalid signature
503-
hash := crypto.keccak256(signed)
503+
hash := ethCrypto.Keccak256(signed)
504504
return ethCrypto.SigToPub(hash, sig)
505505
}
506506

@@ -522,11 +522,6 @@ func generateRandomKeyID() (id string, err error) {
522522
return id, err
523523
}
524524

525-
// keccak256 calculates and returns the keccak256 hash of the input data.
526-
func (crypto *defaultCryptoBackend) keccak256(data ...[]byte) []byte {
527-
return ethCrypto.Keccak256(data...)
528-
}
529-
530525
// generateSecureRandomData generates random data where extra security is required.
531526
// The purpose of this function is to prevent some bugs in software or in hardware
532527
// from delivering not-very-random data. This is especially useful for AES nonce,

pss/keystore.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ func (ks *KeyStore) processSym(pssMsg *PssMsg) ([]byte, string, PssAddress, erro
151151

152152
for i := ks.symKeyDecryptCacheCursor; i > ks.symKeyDecryptCacheCursor-cap(ks.symKeyDecryptCache) && i > 0; i-- {
153153
symkeyid := ks.symKeyDecryptCache[i%cap(ks.symKeyDecryptCache)]
154-
symkey, err := ks.Crypto.GetSymKey(*symkeyid)
154+
symkey, err := ks.Crypto.GetSymmetricKey(*symkeyid)
155155
if err != nil {
156156
continue
157157
}
@@ -246,7 +246,7 @@ func (p *Pss) cleanKeys() (count int) {
246246

247247
// Automatically generate a new symkey for a topic and address hint
248248
func (ks *KeyStore) GenerateSymmetricKey(topic Topic, address PssAddress, addToCache bool) (string, error) {
249-
keyid, err := ks.Crypto.GenerateSymKey()
249+
keyid, err := ks.Crypto.GenerateSymmetricKey()
250250
if err == nil {
251251
ks.addSymmetricKeyToPool(keyid, topic, address, addToCache, false)
252252
}
@@ -256,7 +256,7 @@ func (ks *KeyStore) GenerateSymmetricKey(topic Topic, address PssAddress, addToC
256256
// Returns a symmetric key byte sequence stored in the crypto backend by its unique id.
257257
// Passes on the error value from the crypto backend.
258258
func (ks *KeyStore) GetSymmetricKey(symkeyid string) ([]byte, error) {
259-
return ks.Crypto.GetSymKey(symkeyid)
259+
return ks.Crypto.GetSymmetricKey(symkeyid)
260260
}
261261

262262
// Links a peer symmetric key (arbitrary byte sequence) to a topic.
@@ -278,7 +278,7 @@ func (ks *KeyStore) SetSymmetricKey(key []byte, topic Topic, address PssAddress,
278278
}
279279

280280
func (ks *KeyStore) setSymmetricKey(key []byte, topic Topic, address PssAddress, addtocache bool, protected bool) (string, error) {
281-
keyid, err := ks.Crypto.AddSymKey(key)
281+
keyid, err := ks.Crypto.AddSymmetricKey(key)
282282
if err == nil {
283283
ks.addSymmetricKeyToPool(keyid, topic, address, addtocache, protected)
284284
}

pss/pss_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -627,11 +627,11 @@ func TestKeys(t *testing.T) {
627627
}
628628

629629
// get the key back from crypto backend, check that it's still the same
630-
outkeyback, err := ps.Crypto.GetSymKey(outkeyid)
630+
outkeyback, err := ps.Crypto.GetSymmetricKey(outkeyid)
631631
if err != nil {
632632
t.Fatalf(err.Error())
633633
}
634-
inkey, err := ps.Crypto.GetSymKey(inkeyid)
634+
inkey, err := ps.Crypto.GetSymmetricKey(inkeyid)
635635
if err != nil {
636636
t.Fatalf(err.Error())
637637
}
@@ -1508,7 +1508,7 @@ func benchmarkSymKeySend(b *testing.B) {
15081508
if err != nil {
15091509
b.Fatalf("could not generate symkey: %v", err)
15101510
}
1511-
symkey, err := ps.Crypto.GetSymKey(symkeyid)
1511+
symkey, err := ps.Crypto.GetSymmetricKey(symkeyid)
15121512
if err != nil {
15131513
b.Fatalf("could not retrieve symkey: %v", err)
15141514
}
@@ -1598,7 +1598,7 @@ func benchmarkSymkeyBruteforceChangeaddr(b *testing.B) {
15981598
if err != nil {
15991599
b.Fatalf("cant generate symkey #%d: %v", i, err)
16001600
}
1601-
symkey, err := ps.Crypto.GetSymKey(keyid)
1601+
symkey, err := ps.Crypto.GetSymmetricKey(keyid)
16021602
if err != nil {
16031603
b.Fatalf("could not retrieve symkey %s: %v", keyid, err)
16041604
}
@@ -1672,7 +1672,7 @@ func benchmarkSymkeyBruteforceSameaddr(b *testing.B) {
16721672
}
16731673

16741674
}
1675-
symkey, err := ps.Crypto.GetSymKey(keyid)
1675+
symkey, err := ps.Crypto.GetSymmetricKey(keyid)
16761676
if err != nil {
16771677
b.Fatalf("could not retrieve symkey %s: %v", keyid, err)
16781678
}

0 commit comments

Comments
 (0)