Files
be.ems/tools/cmca/casign.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)
}