0376dc4bd2
* AES GCM implementation and unit test code * modified and tested per the code review comments * modified and tested per the code review comments * updated to return err * removed the debug printf commented code * support of aes-gcm * updated the renaming convention per GOLANG coding standards * Initial Go & C biniding with libstorj * Initial GO & C bindings with libstorj * fixing the callback * moved a millimeter :-) on c to go to gone.... * added error condition, per review comment * removed the .idea directory and also movie.avi file * deleting files not to be in this pull request * Revert "deleting files not to be in this pull request" This reverts commit 026b834fe00f6b20a7566e71973fe224c12f533f. * deleting files not to be in this pull request * resolving conflicts * syncing the file to master * Use aes gcm in eestream rs tests * Use aes gcm in serve example * Fixed comment
37 lines
828 B
Go
37 lines
828 B
Go
// Copyright (C) 2018 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
package eestream
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"testing"
|
|
)
|
|
|
|
func TestAesGcm(t *testing.T) {
|
|
var key [32]byte
|
|
copy(key[:], randData(32))
|
|
var firstNonce [12]byte
|
|
copy(firstNonce[:], randData(12))
|
|
encrypter, err := NewAESGCMEncrypter(&key, &firstNonce, 4*1024)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
data := randData(encrypter.InBlockSize() * 10)
|
|
encrypted := TransformReader(
|
|
ioutil.NopCloser(bytes.NewReader(data)), encrypter, 0)
|
|
decrypter, err := NewAESGCMDecrypter(&key, &firstNonce, 4*1024)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
decrypted := TransformReader(encrypted, decrypter, 0)
|
|
data2, err := ioutil.ReadAll(decrypted)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(data, data2) {
|
|
t.Fatalf("encryption/decryption failed")
|
|
}
|
|
}
|