-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlazyaesgcm_test.go
55 lines (48 loc) · 2.08 KB
/
lazyaesgcm_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package lazyaesgcm_test
import (
"encoding/hex"
"fmt"
"github.com/prongbang/lazyaesgcm"
"testing"
)
var lazyAesGcm lazyaesgcm.LazyAesGcm
func init() {
lazyAesGcm = lazyaesgcm.New()
}
func TestEncrypt(t *testing.T) {
clientKeyPair := lazyaesgcm.NewKeyPair()
serverKeyPair := lazyaesgcm.NewKeyPair()
kxKeyPair := clientKeyPair.Exchange(serverKeyPair.Pk)
sharedKey, _ := kxKeyPair.Secret()
key, _ := hex.DecodeString(sharedKey)
plaintext := `{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIn0.rTCH8cLoGxAm_xw68z-zXVKi9ie6xJn9tnVWjd_9ftE"}`
ciphertext, _ := lazyAesGcm.Encrypt(plaintext, key)
fmt.Println(sharedKey)
fmt.Println(ciphertext)
}
func TestDecrypt(t *testing.T) {
key, _ := hex.DecodeString("e4f7fe3c8b4066490f8ffde56f080c70629ff9731b60838015027c4687303b1d")
ciphertext := "84d685b20c1a647d1bdfddd575fe506163e2215142df6494f9430619e24271240bea94340ed26651573fd125328d9b18d63d6f464f0f7024474ac3864fea59f34dbdbfd5119de23985a0c8549440626dae5d54c00c3171b58f084dda82656c34ecf1de4eb11b33b208a52cac97eb78d88987a4cdd79b11a0713857563df328bfbb52d1c0c04ba931ec"
plaintext, err := lazyAesGcm.Decrypt(ciphertext, key)
fmt.Println(plaintext, err)
}
func BenchmarkEncrypt(b *testing.B) {
key, _ := hex.DecodeString("e4f7fe3c8b4066490f8ffde56f080c70629ff9731b60838015027c4687303b1d")
plaintext := `{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIn0.rTCH8cLoGxAm_xw68z-zXVKi9ie6xJn9tnVWjd_9ftE"}`
for i := 0; i < b.N; i++ {
_, err := lazyAesGcm.Encrypt(plaintext, key)
if err != nil {
b.Errorf("Error %s", err)
}
}
}
func BenchmarkDecrypt(b *testing.B) {
key, _ := hex.DecodeString("e4f7fe3c8b4066490f8ffde56f080c70629ff9731b60838015027c4687303b1d")
ciphertext := "84d685b20c1a647d1bdfddd575fe506163e2215142df6494f9430619e24271240bea94340ed26651573fd125328d9b18d63d6f464f0f7024474ac3864fea59f34dbdbfd5119de23985a0c8549440626dae5d54c00c3171b58f084dda82656c34ecf1de4eb11b33b208a52cac97eb78d88987a4cdd79b11a0713857563df328bfbb52d1c0c04ba931ec"
for i := 0; i < b.N; i++ {
_, err := lazyAesGcm.Decrypt(ciphertext, key)
if err != nil {
b.Errorf("Error %s", err)
}
}
}