72 lines
1.4 KiB
Go
72 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"crypto/x509"
|
|
"encoding/base64"
|
|
"fmt"
|
|
"os"
|
|
|
|
"be.ems/tools/cmca/config"
|
|
)
|
|
|
|
// func init() {
|
|
// roots := x509.NewCertPool()
|
|
// rootCert, err := LoadCert(config.CaConfig.CA.RootCert)
|
|
// if err != nil {
|
|
// os.Exit(1)
|
|
// }
|
|
// roots.AddCert(rootCert)
|
|
// rootCertPool = roots
|
|
// }
|
|
|
|
func main() {
|
|
// 初始化
|
|
//config.CaConfig.CA.RootCert = "./certs/cacert.pem"
|
|
|
|
//Init()
|
|
fmt.Println("CaConfig:", config.CaConfig)
|
|
|
|
roots := x509.NewCertPool()
|
|
rootCert, err := LoadCert(config.CaConfig.CA.RootCert)
|
|
if err != nil {
|
|
os.Exit(1)
|
|
}
|
|
roots.AddCert(rootCert)
|
|
rootCertPool = roots
|
|
|
|
//证书验证:
|
|
cert, err := LoadCert(config.CaConfig.CA.Cert)
|
|
if err != nil {
|
|
fmt.Println("LoadCert:", err)
|
|
return
|
|
}
|
|
|
|
err = VerifyCert(cert)
|
|
fmt.Println("VerifyCert:", err)
|
|
|
|
//签名
|
|
fmt.Println("RSA签名认证:")
|
|
pri, err := LoadPriKey(config.CaConfig.CA.PrivateKey)
|
|
if err != nil {
|
|
fmt.Println("LoadPriKey:", err)
|
|
return
|
|
}
|
|
username := config.UserName
|
|
rsaSign, err := SignRSA([]byte(*username), pri)
|
|
if err != nil {
|
|
fmt.Println("SignRSA:", err)
|
|
return
|
|
}
|
|
rsaSign64 := base64.StdEncoding.EncodeToString(rsaSign)
|
|
fmt.Println("rsaSign64:", rsaSign64)
|
|
|
|
//签证验证
|
|
cert, err = LoadCert(config.CaConfig.CA.Cert)
|
|
if err != nil {
|
|
fmt.Println("LoadCert:", err)
|
|
return
|
|
}
|
|
err = VerifyRSA([]byte(*username), rsaSign, cert)
|
|
fmt.Println("VerifyRSA sign:", err)
|
|
}
|