mirror of
https://github.com/fumiama/tienyik.git
synced 2026-06-08 17:00:24 +08:00
55 lines
987 B
Go
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))
|
|
}
|