mirror of
https://github.com/fumiama/aes-rsa-tcp-demo.git
synced 2026-06-05 01:20:24 +08:00
61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package utils
|
|
|
|
import (
|
|
"bytes"
|
|
"crypto/aes"
|
|
"crypto/rand"
|
|
"encoding/hex"
|
|
"testing"
|
|
)
|
|
|
|
func TestAES(t *testing.T) {
|
|
var buf [32]byte
|
|
var data [123]byte
|
|
_, err := rand.Read(buf[:])
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_, err = rand.Read(data[:])
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
aescipher, err := aes.NewCipher(buf[:])
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
encdat := EncryptAES(aescipher, data[:])
|
|
decdat := DecryptAES(aescipher, encdat)[:123]
|
|
if !bytes.Equal(data[:], decdat) {
|
|
t.Fatal("expected " + hex.EncodeToString(data[:]) + " but got " + hex.EncodeToString(decdat))
|
|
}
|
|
}
|
|
|
|
func TestAESInplace(t *testing.T) {
|
|
var buf [32]byte
|
|
var data [128]byte
|
|
_, err := rand.Read(buf[:])
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_, err = rand.Read(data[:])
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
aescipher, err := aes.NewCipher(buf[:])
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
org := data
|
|
err = EncryptAESInplace(aescipher, data[:])
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err = DecryptAESInplace(aescipher, data[:])
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(data[:], org[:]) {
|
|
t.Fatal("expected " + hex.EncodeToString(org[:]) + " but got " + hex.EncodeToString(data[:]))
|
|
}
|
|
}
|