Skip to content

Commit 61e00d1

Browse files
committed
changed symmetric key
1 parent 2bafc2f commit 61e00d1

File tree

2 files changed

+9
-52
lines changed

2 files changed

+9
-52
lines changed

v2_local.go

+4-15
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,8 @@ const (
2121
// ErrMalformedToken indicates that obtained token was not properly formed
2222
var ErrMalformedToken = errors.New("token is malformed")
2323

24-
// SymmetricKey is an abstraction for real key aimed at setting up strong typing and invariant.
25-
type SymmetricKey struct {
26-
key []byte
27-
}
28-
29-
// NewSymmetricKey is a constructor-like function which creates encryption key suitable for Encrypt() / Decrypt() functions.
30-
// Returns error in case when provided byte slice key length does not match to 32 bytes.
31-
func NewSymmetricKey(key []byte) (SymmetricKey, error) {
32-
if l := len(key); l != chacha20poly1305.KeySize {
33-
return SymmetricKey{}, fmt.Errorf("key length should be %d bytes, provided %d bytes slice", chacha20poly1305.KeySize, l)
34-
}
35-
return SymmetricKey{key: key}, nil
36-
}
24+
// SymmetricKey is used in encryption and decryption routines.
25+
type SymmetricKey []byte
3726

3827
// PV2Local can be used as a global reference for protocol version 2 with local purpose.
3928
var PV2Local = NewPV2Local()
@@ -94,7 +83,7 @@ func (pv2 *ProtoV2Local) encrypt(key SymmetricKey, message []byte, optionalFoote
9483

9584
additionalData := preAuthenticationEncoding([]byte(header), nonce, optionalFooter)
9685

97-
aead, err := chacha20poly1305.NewX(key.key)
86+
aead, err := chacha20poly1305.NewX(key)
9887
if err != nil {
9988
return "", fmt.Errorf("failed to create chacha20poly1305 aead: %w", err)
10089
}
@@ -150,7 +139,7 @@ func (pv2 *ProtoV2Local) decrypt(token string, key SymmetricKey) ([]byte, []byte
150139
nonce := bodyBytes[:nonceLen]
151140
cipherText := bodyBytes[nonceLen:]
152141

153-
aead, err := chacha20poly1305.NewX(key.key)
142+
aead, err := chacha20poly1305.NewX(key)
154143
if err != nil {
155144
return nil, nil, fmt.Errorf("failed to create chachapoly cipher: %w", err)
156145
}

v2_local_test.go

+5-37
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,9 @@ import (
1313
func TestEncrypt(t *testing.T) {
1414

1515
setupKeys := func() (nullKey, fullKey, symmetricKey SymmetricKey, err error) {
16-
nk := bytes.Repeat([]byte{0}, 32)
17-
nullKey, err = NewSymmetricKey(nk)
18-
if err != nil {
19-
return SymmetricKey{}, SymmetricKey{}, SymmetricKey{}, err
20-
}
21-
fk := bytes.Repeat([]byte{0xff}, 32)
22-
fullKey, err = NewSymmetricKey(fk)
23-
if err != nil {
24-
return SymmetricKey{}, SymmetricKey{}, SymmetricKey{}, err
25-
}
26-
sk, err := hex.DecodeString("707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f")
27-
if err != nil {
28-
return SymmetricKey{}, SymmetricKey{}, SymmetricKey{}, err
29-
}
30-
symmetricKey, err = NewSymmetricKey(sk)
16+
nullKey = bytes.Repeat([]byte{0}, 32)
17+
fullKey = bytes.Repeat([]byte{0xff}, 32)
18+
symmetricKey, err = hex.DecodeString("707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f")
3119
if err != nil {
3220
return SymmetricKey{}, SymmetricKey{}, SymmetricKey{}, err
3321
}
@@ -216,14 +204,10 @@ func TestEncrypt(t *testing.T) {
216204

217205
func TestEncryptDecrypt(t *testing.T) {
218206
pv2 := NewPV2Local()
219-
kb, err := hex.DecodeString("707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f")
207+
k, err := hex.DecodeString("707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f")
220208
if err != nil {
221209
t.Errorf("can't hex decode key")
222210
}
223-
k, err := NewSymmetricKey(kb)
224-
if err != nil {
225-
t.Errorf("can't create key: %v", err)
226-
}
227211

228212
type AdditionalInformation struct {
229213
Info string `json:"info"`
@@ -308,12 +292,7 @@ func TestEncryptDecrypt(t *testing.T) {
308292
t.Errorf("problem while encryption")
309293
}
310294

311-
bk := bytes.Repeat([]byte{2}, 32)
312-
badKey, err := NewSymmetricKey(bk)
313-
if err != nil {
314-
t.Errorf("problem while trying to make a new key")
315-
}
316-
295+
badKey := bytes.Repeat([]byte{2}, 32)
317296
if err = pv2.Decrypt(token, badKey).Err(); err == nil {
318297
t.Errorf("error can't be nil because key is different")
319298
}
@@ -368,17 +347,6 @@ func TestPreAuthenticationEncoding(t *testing.T) {
368347
}
369348
}
370349

371-
func TestWrongSizeEncryptionKey(t *testing.T) {
372-
_, err := NewSymmetricKey(bytes.Repeat([]byte{0xff}, 32))
373-
if err != nil {
374-
t.Errorf("problem occurred: %v", err)
375-
}
376-
_, err = NewSymmetricKey(bytes.Repeat([]byte{0xff}, 31))
377-
if err == nil {
378-
t.Errorf("there must be error because of wrong key len")
379-
}
380-
}
381-
382350
func TestEncodeDecodeFooter(t *testing.T) {
383351

384352
// string footer

0 commit comments

Comments
 (0)