1
0
mirror of https://github.com/fumiama/tienyik.git synced 2026-06-08 17:00:24 +08:00
Files
tienyik/api/auth/client_test.go
2025-10-30 23:23:45 +08:00

55 lines
987 B
Go

package auth
import (
"crypto/rand"
"crypto/rsa"
"encoding/base64"
"testing"
"github.com/fumiama/tienyik"
"github.com/sirupsen/logrus"
)
func TestNegotiationEncKey(t *testing.T) {
logrus.SetLevel(logrus.DebugLevel)
k, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
t.Fatal(err)
}
tyr := (*tienyik.RSA)(k)
tyr.E = 0x010001
r, err := NegotiationEncKey(&RequestNegotiationEncKey{
CertData: tyr.PublicKeyToSPKI(),
CertType: tienyik.ETPYE_AES_CBC,
Etype: tienyik.ETPYE_AES_CBC,
})
if err != nil {
t.Fatal(err)
}
t.Logf("EncData: %s", r.EncData)
t.Logf("EncKey: %s", r.EncKey)
v, err := base64.StdEncoding.DecodeString(r.EncKey)
if err != nil {
t.Fatal(err)
}
aesk, err := tyr.Decrypt(v)
if err != nil {
t.Fatal(err)
}
t.Log(string(aesk))
v, err = base64.StdEncoding.DecodeString(r.EncData)
if err != nil {
t.Fatal(err)
}
v, err = tienyik.NewAES([]byte(aesk)).Decrypt(v)
if err != nil {
t.Fatal(err)
}
t.Log(string(v))
}