diff options
author | Jakob Unterwurzacher | 2015-10-04 23:55:58 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2015-10-04 23:58:22 +0200 |
commit | 53ecebc71ec132fc8e5fab486c63e13c0925d142 (patch) | |
tree | d0fe316e107cbf9393ea8a3affd944f3d8574de3 | |
parent | e6b7353f4e9516a712d7cd9dab7d73c6c79ae7d0 (diff) |
openssl AEAD wrapper: handle authenticated data
-rw-r--r-- | cryptfs/openssl_aead.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cryptfs/openssl_aead.go b/cryptfs/openssl_aead.go index b743a3e..f73924d 100644 --- a/cryptfs/openssl_aead.go +++ b/cryptfs/openssl_aead.go @@ -23,8 +23,6 @@ func (be opensslGCM) NonceSize() int { // additional data and appends the result to dst, returning the updated // slice. The nonce must be NonceSize() bytes long and unique for all // time, for a given key. -// -// The plaintext and dst may alias exactly or not at all. func (be opensslGCM) Seal(dst, nonce, plaintext, data []byte) []byte { cipherBuf := bytes.NewBuffer(dst) @@ -33,6 +31,10 @@ func (be opensslGCM) Seal(dst, nonce, plaintext, data []byte) []byte { if err != nil { panic(err) } + err = ectx.ExtraData(data) + if err != nil { + panic(err) + } part, err := ectx.EncryptUpdate(plaintext) if err != nil { panic(err) @@ -88,6 +90,10 @@ func (be opensslGCM) Open(dst, nonce, ciphertext, data []byte) ([]byte, error) { return nil, err } plainBuf.Write(part) + err = dctx.ExtraData(data) + if err != nil { + return nil, err + } return plainBuf.Bytes(), nil } |