address pr remarks
This commit is contained in:
@@ -9,10 +9,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var ErrShortCipherText = errors.New("ciphertext too short")
|
var ErrShortCipherText = errors.New("ciphertext too short")
|
||||||
|
var ErrNoEncryptionKey = errors.New("encryption key is required")
|
||||||
|
|
||||||
func EncryptWithAESKey(data, key []byte) ([]byte, error) {
|
func EncryptWithAESKey(data, key []byte) ([]byte, error) {
|
||||||
if key == nil {
|
if key == nil {
|
||||||
return data, nil
|
return data, ErrNoEncryptionKey
|
||||||
}
|
}
|
||||||
|
|
||||||
block, err := aes.NewCipher(key)
|
block, err := aes.NewCipher(key)
|
||||||
@@ -35,7 +36,7 @@ func EncryptWithAESKey(data, key []byte) ([]byte, error) {
|
|||||||
|
|
||||||
func DecryptStringWithAESKey(data, key []byte) ([]byte, error) {
|
func DecryptStringWithAESKey(data, key []byte) ([]byte, error) {
|
||||||
if key == nil {
|
if key == nil {
|
||||||
return data, nil
|
return data, ErrNoEncryptionKey
|
||||||
}
|
}
|
||||||
|
|
||||||
block, err := aes.NewCipher(key)
|
block, err := aes.NewCipher(key)
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package crypto
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
@@ -28,10 +29,10 @@ func TestAESEncryption(t *testing.T) {
|
|||||||
wantErr: false,
|
wantErr: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "nil key returns original data",
|
name: "nil key returns error",
|
||||||
data: []byte("hello world"),
|
data: []byte("hello world"),
|
||||||
key: nil,
|
key: nil,
|
||||||
wantErr: false,
|
wantErr: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "empty data",
|
name: "empty data",
|
||||||
@@ -59,6 +60,8 @@ func TestAESEncryption(t *testing.T) {
|
|||||||
}
|
}
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
fmt.Println(string(encrypted))
|
||||||
|
|
||||||
decrypted, err := DecryptStringWithAESKey(encrypted, tt.key)
|
decrypted, err := DecryptStringWithAESKey(encrypted, tt.key)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
@@ -98,6 +101,12 @@ func TestDecryptionErrors(t *testing.T) {
|
|||||||
key: key,
|
key: key,
|
||||||
errMsg: "message authentication failed",
|
errMsg: "message authentication failed",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "missing key",
|
||||||
|
data: []byte("<22>`M<><4D><EFBFBD>l\u001AIF<49>\u0012<31><32><EFBFBD>=h<>?<3F>c<EFBFBD> <20><>\u0012<31><32><EFBFBD><EFBFBD>\u001C<31>\u0018Ƽ(g"),
|
||||||
|
key: nil,
|
||||||
|
errMsg: "encryption key is required",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
|||||||
@@ -210,16 +210,15 @@ func TestEncryptedMeta(t *testing.T) {
|
|||||||
"secret2": "value2",
|
"secret2": "value2",
|
||||||
"secret3": "value3",
|
"secret3": "value3",
|
||||||
}
|
}
|
||||||
|
var opts []delegation.Option
|
||||||
|
for k, v := range values {
|
||||||
|
opts = append(opts, delegation.WithEncryptedMeta(k, v, encryptionKey))
|
||||||
|
}
|
||||||
|
|
||||||
// Create token with multiple encrypted values
|
// Create token with multiple encrypted values
|
||||||
tkn, err := delegation.New(privKey, aud, cmd, pol, delegation.WithMeta("foo", "bar"))
|
tkn, err := delegation.New(privKey, aud, cmd, pol, opts...)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
for k, v := range values {
|
|
||||||
err := tkn.Meta().AddEncrypted(k, v, encryptionKey)
|
|
||||||
require.NoError(t, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
data, err := tkn.ToDagCbor(privKey)
|
data, err := tkn.ToDagCbor(privKey)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user