refactor: clean code
This commit is contained in:
@@ -15,9 +15,9 @@ import (
|
||||
// - cert: x509.Certificate 对象。
|
||||
//
|
||||
// 出参:
|
||||
// - certPem: 证书 PEM 内容。
|
||||
// - certPEM: 证书 PEM 内容。
|
||||
// - err: 错误。
|
||||
func ConvertCertificateToPEM(cert *x509.Certificate) (certPem string, err error) {
|
||||
func ConvertCertificateToPEM(cert *x509.Certificate) (certPEM string, err error) {
|
||||
if cert == nil {
|
||||
return "", errors.New("`cert` is nil")
|
||||
}
|
||||
@@ -36,9 +36,9 @@ func ConvertCertificateToPEM(cert *x509.Certificate) (certPem string, err error)
|
||||
// - privkey: ecdsa.PrivateKey 对象。
|
||||
//
|
||||
// 出参:
|
||||
// - privkeyPem: 私钥 PEM 内容。
|
||||
// - privkeyPEM: 私钥 PEM 内容。
|
||||
// - err: 错误。
|
||||
func ConvertECPrivateKeyToPEM(privkey *ecdsa.PrivateKey) (privkeyPem string, err error) {
|
||||
func ConvertECPrivateKeyToPEM(privkey *ecdsa.PrivateKey) (privkeyPEM string, err error) {
|
||||
if privkey == nil {
|
||||
return "", errors.New("`privkey` is nil")
|
||||
}
|
||||
@@ -8,15 +8,15 @@ import (
|
||||
// 从 PEM 编码的证书字符串解析并提取服务器证书和中间证书。
|
||||
//
|
||||
// 入参:
|
||||
// - certPem: 证书 PEM 内容。
|
||||
// - certPEM: 证书 PEM 内容。
|
||||
//
|
||||
// 出参:
|
||||
// - serverCertPem: 服务器证书的 PEM 内容。
|
||||
// - interCertPem: 中间证书的 PEM 内容。
|
||||
// - serverCertPEM: 服务器证书的 PEM 内容。
|
||||
// - interCertPEM: 中间证书的 PEM 内容。
|
||||
// - err: 错误。
|
||||
func ExtractCertificatesFromPEM(certPem string) (serverCertPem string, interCertPem string, err error) {
|
||||
func ExtractCertificatesFromPEM(certPEM string) (serverCertPEM string, interCertPEM string, err error) {
|
||||
pemBlocks := make([]*pem.Block, 0)
|
||||
pemData := []byte(certPem)
|
||||
pemData := []byte(certPEM)
|
||||
for {
|
||||
block, rest := pem.Decode(pemData)
|
||||
if block == nil || block.Type != "CERTIFICATE" {
|
||||
@@ -27,22 +27,22 @@ func ExtractCertificatesFromPEM(certPem string) (serverCertPem string, interCert
|
||||
pemData = rest
|
||||
}
|
||||
|
||||
serverCertPem = ""
|
||||
interCertPem = ""
|
||||
serverCertPEM = ""
|
||||
interCertPEM = ""
|
||||
|
||||
if len(pemBlocks) == 0 {
|
||||
return "", "", errors.New("failed to decode PEM block")
|
||||
}
|
||||
|
||||
if len(pemBlocks) > 0 {
|
||||
serverCertPem = string(pem.EncodeToMemory(pemBlocks[0]))
|
||||
serverCertPEM = string(pem.EncodeToMemory(pemBlocks[0]))
|
||||
}
|
||||
|
||||
if len(pemBlocks) > 1 {
|
||||
for i := 1; i < len(pemBlocks); i++ {
|
||||
interCertPem += string(pem.EncodeToMemory(pemBlocks[i]))
|
||||
interCertPEM += string(pem.EncodeToMemory(pemBlocks[i]))
|
||||
}
|
||||
}
|
||||
|
||||
return serverCertPem, interCertPem, nil
|
||||
return serverCertPEM, interCertPEM, nil
|
||||
}
|
||||
@@ -16,13 +16,13 @@ import (
|
||||
// PEM 内容可能是包含多张证书的证书链,但只返回第一个证书(即服务器证书)。
|
||||
//
|
||||
// 入参:
|
||||
// - certPem: 证书 PEM 内容。
|
||||
// - certPEM: 证书 PEM 内容。
|
||||
//
|
||||
// 出参:
|
||||
// - cert: x509.Certificate 对象。
|
||||
// - err: 错误。
|
||||
func ParseCertificateFromPEM(certPem string) (cert *x509.Certificate, err error) {
|
||||
pemData := []byte(certPem)
|
||||
func ParseCertificateFromPEM(certPEM string) (cert *x509.Certificate, err error) {
|
||||
pemData := []byte(certPEM)
|
||||
|
||||
block, _ := pem.Decode(pemData)
|
||||
if block == nil {
|
||||
@@ -40,26 +40,26 @@ func ParseCertificateFromPEM(certPem string) (cert *x509.Certificate, err error)
|
||||
// 从 PEM 编码的私钥字符串解析并返回一个 crypto.PrivateKey 对象。
|
||||
//
|
||||
// 入参:
|
||||
// - privkeyPem: 私钥 PEM 内容。
|
||||
// - privkeyPEM: 私钥 PEM 内容。
|
||||
//
|
||||
// 出参:
|
||||
// - privkey: crypto.PrivateKey 对象,可能是 rsa.PrivateKey、ecdsa.PrivateKey 或 ed25519.PrivateKey。
|
||||
// - err: 错误。
|
||||
func ParsePrivateKeyFromPEM(privkeyPem string) (privkey crypto.PrivateKey, err error) {
|
||||
pemData := []byte(privkeyPem)
|
||||
func ParsePrivateKeyFromPEM(privkeyPEM string) (privkey crypto.PrivateKey, err error) {
|
||||
pemData := []byte(privkeyPEM)
|
||||
return certcrypto.ParsePEMPrivateKey(pemData)
|
||||
}
|
||||
|
||||
// 从 PEM 编码的私钥字符串解析并返回一个 ecdsa.PrivateKey 对象。
|
||||
//
|
||||
// 入参:
|
||||
// - privkeyPem: 私钥 PEM 内容。
|
||||
// - privkeyPEM: 私钥 PEM 内容。
|
||||
//
|
||||
// 出参:
|
||||
// - privkey: ecdsa.PrivateKey 对象。
|
||||
// - err: 错误。
|
||||
func ParseECPrivateKeyFromPEM(privkeyPem string) (privkey *ecdsa.PrivateKey, err error) {
|
||||
pemData := []byte(privkeyPem)
|
||||
func ParseECPrivateKeyFromPEM(privkeyPEM string) (privkey *ecdsa.PrivateKey, err error) {
|
||||
pemData := []byte(privkeyPEM)
|
||||
|
||||
block, _ := pem.Decode(pemData)
|
||||
if block == nil {
|
||||
@@ -77,13 +77,13 @@ func ParseECPrivateKeyFromPEM(privkeyPem string) (privkey *ecdsa.PrivateKey, err
|
||||
// 从 PEM 编码的私钥字符串解析并返回一个 rsa.PrivateKey 对象。
|
||||
//
|
||||
// 入参:
|
||||
// - privkeyPem: 私钥 PEM 内容。
|
||||
// - privkeyPEM: 私钥 PEM 内容。
|
||||
//
|
||||
// 出参:
|
||||
// - privkey: rsa.PrivateKey 对象。
|
||||
// - err: 错误。
|
||||
func ParsePKCS1PrivateKeyFromPEM(privkeyPem string) (privkey *rsa.PrivateKey, err error) {
|
||||
pemData := []byte(privkeyPem)
|
||||
func ParsePKCS1PrivateKeyFromPEM(privkeyPEM string) (privkey *rsa.PrivateKey, err error) {
|
||||
pemData := []byte(privkeyPEM)
|
||||
|
||||
block, _ := pem.Decode(pemData)
|
||||
if block == nil {
|
||||
@@ -13,20 +13,20 @@ import (
|
||||
// 将 PEM 编码的证书字符串转换为 PFX 格式。
|
||||
//
|
||||
// 入参:
|
||||
// - certPem: 证书 PEM 内容。
|
||||
// - privkeyPem: 私钥 PEM 内容。
|
||||
// - certPEM: 证书 PEM 内容。
|
||||
// - privkeyPEM: 私钥 PEM 内容。
|
||||
// - pfxPassword: PFX 导出密码。
|
||||
//
|
||||
// 出参:
|
||||
// - data: PFX 格式的证书数据。
|
||||
// - err: 错误。
|
||||
func TransformCertificateFromPEMToPFX(certPem string, privkeyPem string, pfxPassword string) ([]byte, error) {
|
||||
cert, err := ParseCertificateFromPEM(certPem)
|
||||
func TransformCertificateFromPEMToPFX(certPEM string, privkeyPEM string, pfxPassword string) ([]byte, error) {
|
||||
cert, err := ParseCertificateFromPEM(certPEM)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
privkey, err := ParsePrivateKeyFromPEM(privkeyPem)
|
||||
privkey, err := ParsePrivateKeyFromPEM(privkeyPEM)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -42,8 +42,8 @@ func TransformCertificateFromPEMToPFX(certPem string, privkeyPem string, pfxPass
|
||||
// 将 PEM 编码的证书字符串转换为 JKS 格式。
|
||||
//
|
||||
// 入参:
|
||||
// - certPem: 证书 PEM 内容。
|
||||
// - privkeyPem: 私钥 PEM 内容。
|
||||
// - certPEM: 证书 PEM 内容。
|
||||
// - privkeyPEM: 私钥 PEM 内容。
|
||||
// - jksAlias: JKS 别名。
|
||||
// - jksKeypass: JKS 密钥密码。
|
||||
// - jksStorepass: JKS 存储密码。
|
||||
@@ -51,13 +51,13 @@ func TransformCertificateFromPEMToPFX(certPem string, privkeyPem string, pfxPass
|
||||
// 出参:
|
||||
// - data: JKS 格式的证书数据。
|
||||
// - err: 错误。
|
||||
func TransformCertificateFromPEMToJKS(certPem string, privkeyPem string, jksAlias string, jksKeypass string, jksStorepass string) ([]byte, error) {
|
||||
certBlock, _ := pem.Decode([]byte(certPem))
|
||||
func TransformCertificateFromPEMToJKS(certPEM string, privkeyPEM string, jksAlias string, jksKeypass string, jksStorepass string) ([]byte, error) {
|
||||
certBlock, _ := pem.Decode([]byte(certPEM))
|
||||
if certBlock == nil {
|
||||
return nil, errors.New("failed to decode certificate PEM")
|
||||
}
|
||||
|
||||
privkeyBlock, _ := pem.Decode([]byte(privkeyPem))
|
||||
privkeyBlock, _ := pem.Decode([]byte(privkeyPEM))
|
||||
if privkeyBlock == nil {
|
||||
return nil, errors.New("failed to decode private key PEM")
|
||||
}
|
||||
Reference in New Issue
Block a user