Browse Source

clean up, add test

pull/1255/head
Chris Lu 5 years ago
parent
commit
e2e691d9c2
  1. 21
      weed/util/cipher.go
  2. 17
      weed/util/cipher_test.go

21
weed/util/cipher.go

@ -1,14 +1,11 @@
package util
import (
"bytes"
"crypto/aes"
"crypto/cipher"
"crypto/rand"
"errors"
"fmt"
"io"
"io/ioutil"
"github.com/chrislusf/seaweedfs/weed/glog"
)
@ -61,21 +58,3 @@ func Decrypt(ciphertext []byte, key CipherKey) ([]byte, error) {
nonce, ciphertext := ciphertext[:nonceSize], ciphertext[nonceSize:]
return gcm.Open(nil, nonce, ciphertext, nil)
}
func EncryptReader(clearReader io.Reader) (cipherKey CipherKey, encryptedReader io.ReadCloser, clearDataLen, encryptedDataLen int, err error) {
clearData, err := ioutil.ReadAll(clearReader)
if err != nil {
err = fmt.Errorf("read raw input: %v", err)
return
}
clearDataLen = len(clearData)
cipherKey = GenCipherKey()
encryptedData, err := Encrypt(clearData, cipherKey)
if err != nil {
err = fmt.Errorf("encrypt input: %v", err)
return
}
encryptedDataLen = len(encryptedData)
encryptedReader = ioutil.NopCloser(bytes.NewReader(encryptedData))
return
}

17
weed/util/cipher_test.go

@ -0,0 +1,17 @@
package util
import (
"encoding/base64"
"testing"
)
func TestSameAsJavaImplementation(t *testing.T) {
str := "QVVhmqg112NMT7F+G/7QPynqSln3xPIhKdFGmTVKZD6IS0noyr2Z5kXFF6fPjZ/7Hq8kRhlmLeeqZUccxyaZHezOdgkjS6d4NTdHf5IjXzk7"
cipherText, _ := base64.StdEncoding.DecodeString(str)
secretKey := []byte("256-bit key for AES 256 GCM encr")
plantext, err := Decrypt(cipherText, CipherKey(secretKey))
if err != nil {
println(err.Error())
}
println(string(plantext))
}
Loading…
Cancel
Save