diff options
Diffstat (limited to 'internal/goaes.go')
| -rw-r--r-- | internal/goaes.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/internal/goaes.go b/internal/goaes.go index 65d898d..805a386 100644 --- a/internal/goaes.go +++ b/internal/goaes.go @@ -41,33 +41,38 @@ func NewKEKFromEnvB64(passphraseEnvVar string, salt Salt) (KEK, error) { } func NewDEK() (DEK, error) { - key := make([]byte, 32) + key := make([]byte, keyLen) if _, err := io.ReadFull(rand.Reader, key); err != nil { return nil, fmt.Errorf("random DEK gen: %w", err) } + return DEK(key), nil } func NewSalt() (Salt, error) { - key := make([]byte, 32) + key := make([]byte, keyLen) if _, err := io.ReadFull(rand.Reader, key); err != nil { return nil, fmt.Errorf("random salt gen: %w", err) } + return Salt(key), nil } func WrapDEK(dek DEK, kek KEK) (WrappedDEK, error) { edek, err := encryptAEAD([]byte(dek), []byte(kek), aadWrapDEK) + return WrappedDEK(edek), err } func UnwrapDEK(edek WrappedDEK, kek KEK) (DEK, error) { dek, err := decryptAEAD([]byte(edek), []byte(kek), aadWrapDEK) + return DEK(dek), err } func EncryptData(plaintext []byte, dek DEK) (Ciphertext, error) { ct, err := encryptAEAD(plaintext, []byte(dek), aadDataMsg) + return Ciphertext(ct), err } @@ -121,6 +126,7 @@ func decryptAEAD(ciphertext, key, aad []byte) ([]byte, error) { nonce := ciphertext[:ns] body := ciphertext[ns:] + return gcm.Open(nil, nonce, body, aad) } |
