ymt/core/core_test.go

140 lines
8.1 KiB
Go

package core
import (
"net/http"
"testing"
"time"
)
func TestRSADecode(t *testing.T) {
c := Config{
AppID: "KY7gREqQ96Phxhcvj8es7B6e",
PrivateKey: "MIIEowIBAAKCAQEA4YYRanaqAryAxemV+A9UfbKglFapYPsH9MSR83hwrE1we4hG47sN2f+agT6DF1vnb7MocChQzs0puJzJLHY53FK00fOgSmQ7IoE2cB/ywabNm4ynVMuJD0QCumb9m6wd9vT47R6eKL5ZQ5lP0pzPjw632rzQfOwTGAQeq6Sg9R73NQbL3r6Kk0KorTgF6F+in0PwAiaSoKSKMPcF2sNdZONtPcx2XAEt/5DHz4XkgCEVtxZCw1/lJegjlP8j/8Uy4BjOSxAWMrIu3C9kJxP2Dftc8bBFs8YVEA019Q2IP22Ws35QgnQ9+YyesPLLnJgjLkifsNgSj457+LlWR/rtOQIDAQABAoIBAQCXM47LpUF40i84AdLlXEnWeIOG0M+A0O1VotEDvnU0YDsQ5543orq3tNI+4s17RMfXMPPktnLvI8hcGOob4CwM1nqa5M9L8QVgreb0p8bXJOFm75dkl42N6Zg2p0RTMcNpRnb6a3O4d15bnxdQaogSLtj/U2YoyxJGIMT7aUXs8JK0AaZNTdjqeoJIxuRSYQ+Viu3nBuCqhMKeh579kFs4/8DD/+fADSa39w1skW0U064Ou0jKjqK8+rNTdx1ANyoxe2/9AJjLggIosswJStfI9BmPgd9MtATmi/DN7ceXNyfDqtyLgWmJD+Iad7XQFXrDSxUPbV7xVBK0N9Zz9+LxAoGBAO6zJZMIAGPwROZKNj7WmhjCNEdUBrV2zZHNo0ABwu+eeyrlX9dyf7Kg2O8j+wWs4lcQoDMjopaSoDCqlYBGAOEuTATbinhzURyT1+mMDRd3tHvaGB0xVSDCg9MKDOnXTSAI049Rw4qy4gxLw0aDOYVyQVeaRKOeICyQ2S/UZ4ktAoGBAPHec36J5L+k3WVVejMyh8xBjKucbPJ2QSQxprHovINq4fiZGoBHJWA8hnF4xffb8HO+1hSfs7iUnNpqUF9qqsq5uFEEFRJQHEVkabL92MKQW6oTvB/3AtuYo1ieL4Ri/s+p72GD2sEF85vfXoNMy9kGGTxuxXSaJcphANZh36O9AoGAHq2pq58ApdeQk2SAWk0smvgCzhQPlK0DOLUMQUK4siFVRSsbyU3u+Z9QolOmhJE2uefqHwh6cg3ARuD1u/nDTS2tGYa54kc36otZ2atlV1nMOYrLRJ09iqtVU/9br4Y7ZF2eCzKABkh9YwUtwNdGwk7v9PlfzwOYsQGg2FPdRrUCgYB7kkZ5kOPw0b9XRWuQerGMtrSy/NFgsvAnGMLsxFaD4fifdUFn5nF/EI0zrhuevZzE1ew0Tz+X/z2ADa8QgMPPnUFBCw/k8k7vWRTzoOO8y9o5M6n6vs2T+hECdpcaUSWUXWLy9FWwJmVG7sEv3e2L7KS6DnINV7AVDKhL32dOFQKBgBGsKG+W6Qs90qFZ92oF138csK1ewop4Fl8JiORQAVicEp1F7rd9HDZ+yn6VqkYI3eJ7W77IQPRAb39Nm36ebY/iiZ1q1b3VMzNPWk0JtLSUTR8asihn6UB/3phQE+dtmVgqqwTuV+J8l7Tor4JPACWTo2A72qbkNV923Y/Jzb0W",
PublicKey: "MIIBCgKCAQEA4YYRanaqAryAxemV+A9UfbKglFapYPsH9MSR83hwrE1we4hG47sN2f+agT6DF1vnb7MocChQzs0puJzJLHY53FK00fOgSmQ7IoE2cB/ywabNm4ynVMuJD0QCumb9m6wd9vT47R6eKL5ZQ5lP0pzPjw632rzQfOwTGAQeq6Sg9R73NQbL3r6Kk0KorTgF6F+in0PwAiaSoKSKMPcF2sNdZONtPcx2XAEt/5DHz4XkgCEVtxZCw1/lJegjlP8j/8Uy4BjOSxAWMrIu3C9kJxP2Dftc8bBFs8YVEA019Q2IP22Ws35QgnQ9+YyesPLLnJgjLkifsNgSj457+LlWR/rtOQIDAQAB",
Key: "941862746dc51adf517be9f820b4e558",
SignType: SignRSA,
BaseURL: "http://127.0.0.1:9000",
}
httpClient := &http.Client{
Timeout: time.Second * 10,
}
core, err := NewCore(&c, WithHttpClient(httpClient))
if err != nil {
t.Error(err)
return
}
ciphertexts := []string{
"Avf1QExKRhCLkSkfVsqABmbN8k89B6hsolfM7Atmdn3aiMl8AiwjK6TWvp9q/VQDmW7E3pi23+K3JVbv5u5eRQo0zzelzVLZb6zpNlGEJqvd23Ze3RpIZJJhfoerhXThbAkt5dFLNsoSy7vmt73vVA==",
"OX3577Ru7VyZSfeJN6sI3xalL2xGW/kO4kwLYyIxykT0vZz4hwI8yg5JtfI4WILBmW7E3pi23+K3JVbv5u5eRQo0zzelzVLZb6zpNlGEJquBnHi5ejbF63SWCKJrU3NSmp65whhwZj1YrxnVaRf0BQ==",
"h1yrzbvCBtiUjFwXP/+Kue0gl4/gklv4Mha+fVJtwT6EA+o85aDwfQhkzkWIba09mW7E3pi23+K3JVbv5u5eRQo0zzelzVLZb6zpNlGEJqv+rBy30uT37E+0wjgk9IKKHGucOtLZ818cOSbaRcuf/g==",
"WnRBvE4qAdrWMs8yGXkHXsRk6v9bf4nP6aWtnW/VgJqEA+o85aDwfQhkzkWIba09mW7E3pi23+K3JVbv5u5eRQo0zzelzVLZb6zpNlGEJqteK4sShwziQaN9P5Kvp49v89lLLc5N6se1C5p/nFkIqQ==",
"QxPlK33+blw9nYi7hkuWxp3dLDhu0wRQuP3N/rm7ylgS5xzRiIuhQrBLaZ39wcbMZYJIUNHmaYd0mpo4fnUUVLt3cqtus8+Cz1zo5D2OrhB3ltBKRNn/gsybc6IpH1zR+28CST0YVxhrFkAy7mjCwg==",
"oXcdSAsVb0hgOXuTG4BDPDAn6Q4ZU0JexYElEgI3Tq+EA+o85aDwfQhkzkWIba09mW7E3pi23+K3JVbv5u5eRQo0zzelzVLZb6zpNlGEJqvdcwL8USD/g6c0srPYJxVW9nK/W4FQucUqdS30qN7E4g==",
"h3wu3LA4J67kRQ83dW0D/TGcJMAPwY3T6t+klVmntkWEA+o85aDwfQhkzkWIba09mW7E3pi23+K3JVbv5u5eRQo0zzelzVLZb6zpNlGEJqvtKEu3lpUuSGc3y4sJ34lZPCFUg9gnGKG0JIM/gwo0vg==",
"OE/NlJh8d17KDlMieOdz0eSapHIlCDV73peCh2bImAfnxKILn3T5x7VdXkr6QXVW",
"OE/NlJh8d17KDlMieOdz0aZ2qA8uLQa1uJIl+OKi1tr2X0J0wTI4/d8OlVt9n4zk",
"OE/NlJh8d17KDlMieOdz0bXpG9yJj1kt7IZVTZl2T2q278xMqsnrn8X9LxjUE4m+",
}
for index, ciphertext := range ciphertexts {
e, err := core.CryptographySuite.Cipher.Decode(ciphertext)
if err != nil {
t.Errorf("解密失败,index:%d", index+1)
}
t.Logf("解密成功: %s", e)
}
}
func TestRSADecodeVerify(t *testing.T) {
c := Config{
AppID: "JLYPGHBSDKok",
PrivateKey: "MIIEowIBAAKCAQEA4YYRanaqAryAxemV+A9UfbKglFapYPsH9MSR83hwrE1we4hG47sN2f+agT6DF1vnb7MocChQzs0puJzJLHY53FK00fOgSmQ7IoE2cB/ywabNm4ynVMuJD0QCumb9m6wd9vT47R6eKL5ZQ5lP0pzPjw632rzQfOwTGAQeq6Sg9R73NQbL3r6Kk0KorTgF6F+in0PwAiaSoKSKMPcF2sNdZONtPcx2XAEt/5DHz4XkgCEVtxZCw1/lJegjlP8j/8Uy4BjOSxAWMrIu3C9kJxP2Dftc8bBFs8YVEA019Q2IP22Ws35QgnQ9+YyesPLLnJgjLkifsNgSj457+LlWR/rtOQIDAQABAoIBAQCXM47LpUF40i84AdLlXEnWeIOG0M+A0O1VotEDvnU0YDsQ5543orq3tNI+4s17RMfXMPPktnLvI8hcGOob4CwM1nqa5M9L8QVgreb0p8bXJOFm75dkl42N6Zg2p0RTMcNpRnb6a3O4d15bnxdQaogSLtj/U2YoyxJGIMT7aUXs8JK0AaZNTdjqeoJIxuRSYQ+Viu3nBuCqhMKeh579kFs4/8DD/+fADSa39w1skW0U064Ou0jKjqK8+rNTdx1ANyoxe2/9AJjLggIosswJStfI9BmPgd9MtATmi/DN7ceXNyfDqtyLgWmJD+Iad7XQFXrDSxUPbV7xVBK0N9Zz9+LxAoGBAO6zJZMIAGPwROZKNj7WmhjCNEdUBrV2zZHNo0ABwu+eeyrlX9dyf7Kg2O8j+wWs4lcQoDMjopaSoDCqlYBGAOEuTATbinhzURyT1+mMDRd3tHvaGB0xVSDCg9MKDOnXTSAI049Rw4qy4gxLw0aDOYVyQVeaRKOeICyQ2S/UZ4ktAoGBAPHec36J5L+k3WVVejMyh8xBjKucbPJ2QSQxprHovINq4fiZGoBHJWA8hnF4xffb8HO+1hSfs7iUnNpqUF9qqsq5uFEEFRJQHEVkabL92MKQW6oTvB/3AtuYo1ieL4Ri/s+p72GD2sEF85vfXoNMy9kGGTxuxXSaJcphANZh36O9AoGAHq2pq58ApdeQk2SAWk0smvgCzhQPlK0DOLUMQUK4siFVRSsbyU3u+Z9QolOmhJE2uefqHwh6cg3ARuD1u/nDTS2tGYa54kc36otZ2atlV1nMOYrLRJ09iqtVU/9br4Y7ZF2eCzKABkh9YwUtwNdGwk7v9PlfzwOYsQGg2FPdRrUCgYB7kkZ5kOPw0b9XRWuQerGMtrSy/NFgsvAnGMLsxFaD4fifdUFn5nF/EI0zrhuevZzE1ew0Tz+X/z2ADa8QgMPPnUFBCw/k8k7vWRTzoOO8y9o5M6n6vs2T+hECdpcaUSWUXWLy9FWwJmVG7sEv3e2L7KS6DnINV7AVDKhL32dOFQKBgBGsKG+W6Qs90qFZ92oF138csK1ewop4Fl8JiORQAVicEp1F7rd9HDZ+yn6VqkYI3eJ7W77IQPRAb39Nm36ebY/iiZ1q1b3VMzNPWk0JtLSUTR8asihn6UB/3phQE+dtmVgqqwTuV+J8l7Tor4JPACWTo2A72qbkNV923Y/Jzb0W",
PublicKey: "MIIBCgKCAQEA4YYRanaqAryAxemV+A9UfbKglFapYPsH9MSR83hwrE1we4hG47sN2f+agT6DF1vnb7MocChQzs0puJzJLHY53FK00fOgSmQ7IoE2cB/ywabNm4ynVMuJD0QCumb9m6wd9vT47R6eKL5ZQ5lP0pzPjw632rzQfOwTGAQeq6Sg9R73NQbL3r6Kk0KorTgF6F+in0PwAiaSoKSKMPcF2sNdZONtPcx2XAEt/5DHz4XkgCEVtxZCw1/lJegjlP8j/8Uy4BjOSxAWMrIu3C9kJxP2Dftc8bBFs8YVEA019Q2IP22Ws35QgnQ9+YyesPLLnJgjLkifsNgSj457+LlWR/rtOQIDAQAB",
Key: "941862746dc51adf517be9f820b4e558",
SignType: SignRSA,
BaseURL: "http://127.0.0.1:9000",
}
httpClient := &http.Client{
Timeout: time.Second * 10,
}
core, err := NewCore(&c, WithHttpClient(httpClient))
if err != nil {
t.Error(err)
return
}
ciphertext := "aBOvDVJaym2ADd9IcE3LmeQ27JNzSx4W1eUveB1Jl3y4y/eGA+bpkTmM3J8GQ5kA"
timestamps := "2025-11-24 11:46:00"
dataToSign := c.AppID + timestamps + ciphertext
signature := "lP1O2btOLjWaOVF/XLfkoFKKIM+sWAEr7e/uiE7YUlhiu266QD/Zfg+eBZLIUX7xVSe3REvmjFfm9L3y3pfy5Rf0m18oJAvrK9eJ6nUOftTo53WeeZ+afGNUfbk434exx1Cb09S3AtH8u7idQqcIYR6b+qi2/gCoFooNxEjpUD66j3ixVaOxy3QlBLNrqORttKcsMwRpU+c3V3s1SSkGwSmOha9wEHRrU+hCELa5HjU0YvL2jWlMbqc6qPx2kuFkKMrfuGrKP1GvhPM+t9oeEOXlbll491TKmb934XTWBeC/mdwbpt+4zkHo+ElRK8P8QaqJH06GtAMoiQgX88HeEA=="
e, err := core.CryptographySuite.Cipher.Decode(ciphertext)
if err != nil {
t.Error("解密失败")
}
t.Log(e)
b := core.CryptographySuite.Verifier.Verify(dataToSign, signature)
if !b {
t.Error("验签失败")
}
}
func TestRSASignVerify(t *testing.T) {
c := Config{
AppID: "",
PrivateKey: "",
PublicKey: "",
Key: "",
SignType: SignRSA,
BaseURL: "http://127.0.0.1:9000",
}
httpClient := &http.Client{
Timeout: time.Second * 10,
}
core, err := NewCore(&c, WithHttpClient(httpClient))
if err != nil {
t.Error(err)
return
}
signStr := "123456{}测试"
signature, err := core.CryptographySuite.Signer.Sign(signStr)
if err != nil {
t.Error(err)
return
}
b := core.CryptographySuite.Verifier.Verify(signStr, signature)
if !b {
t.Error("验签失败")
}
}
func TestSMSignVerify(t *testing.T) {
c := Config{
AppID: "123456",
PrivateKey: "zJRUcwPpKFf4nWiN9wqSO9gpGFx5BP4WviqnPsrhkpc=",
PublicKey: "BKbxGVVlJGWK/ScU0ebKSe4Jr4LvcBGgvt/HHBk+ODVCYnJYvvmX8cDNpf3TVYuRdz/RUH6UDgcoVpz02jXNfrM=",
Key: "t+VxHnp+K9huhtNT84Pk7A==",
SignType: SignSM,
BaseURL: "http://127.0.0.1:9000",
}
core, err := NewCore(&c)
if err != nil {
t.Error(err)
return
}
signStr := "123456{}测试"
signature, err := core.CryptographySuite.Signer.Sign(signStr)
if err != nil {
t.Error(err)
return
}
b := core.CryptographySuite.Verifier.Verify(signStr, signature)
if !b {
t.Error("验签失败")
}
}