@@ -16,7 +16,7 @@ import (
|
||||
// 出参:
|
||||
// - 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")
|
||||
}
|
||||
@@ -37,14 +37,14 @@ func ConvertCertificateToPEM(cert *x509.Certificate) (certPEM string, err error)
|
||||
// 出参:
|
||||
// - 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")
|
||||
}
|
||||
|
||||
data, err := x509.MarshalECPrivateKey(privkey)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to marshal EC private key: %w", err)
|
||||
data, _err := x509.MarshalECPrivateKey(privkey)
|
||||
if _err != nil {
|
||||
return "", fmt.Errorf("failed to marshal EC private key: %w", _err)
|
||||
}
|
||||
|
||||
block := &pem.Block{
|
||||
|
||||
@@ -14,7 +14,7 @@ import (
|
||||
// - serverCertPEM: 服务器证书的 PEM 内容。
|
||||
// - intermediaCertPEM: 中间证书的 PEM 内容。
|
||||
// - err: 错误。
|
||||
func ExtractCertificatesFromPEM(certPEM string) (serverCertPEM string, intermediaCertPEM string, err error) {
|
||||
func ExtractCertificatesFromPEM(certPEM string) (_serverCertPEM string, _intermediaCertPEM string, _err error) {
|
||||
pemBlocks := make([]*pem.Block, 0)
|
||||
pemData := []byte(certPEM)
|
||||
for {
|
||||
@@ -27,8 +27,8 @@ func ExtractCertificatesFromPEM(certPEM string) (serverCertPEM string, intermedi
|
||||
pemData = rest
|
||||
}
|
||||
|
||||
serverCertPEM = ""
|
||||
intermediaCertPEM = ""
|
||||
serverCertPEM := ""
|
||||
intermediaCertPEM := ""
|
||||
|
||||
if len(pemBlocks) == 0 {
|
||||
return "", "", errors.New("failed to decode PEM block")
|
||||
|
||||
@@ -21,7 +21,7 @@ import (
|
||||
// 出参:
|
||||
// - cert: x509.Certificate 对象。
|
||||
// - err: 错误。
|
||||
func ParseCertificateFromPEM(certPEM string) (cert *x509.Certificate, err error) {
|
||||
func ParseCertificateFromPEM(certPEM string) (_cert *x509.Certificate, _err error) {
|
||||
pemData := []byte(certPEM)
|
||||
|
||||
block, _ := pem.Decode(pemData)
|
||||
@@ -29,7 +29,7 @@ func ParseCertificateFromPEM(certPEM string) (cert *x509.Certificate, err error)
|
||||
return nil, errors.New("failed to decode PEM block")
|
||||
}
|
||||
|
||||
cert, err = x509.ParseCertificate(block.Bytes)
|
||||
cert, err := x509.ParseCertificate(block.Bytes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse certificate: %w", err)
|
||||
}
|
||||
@@ -45,7 +45,7 @@ func ParseCertificateFromPEM(certPEM string) (cert *x509.Certificate, err error)
|
||||
// 出参:
|
||||
// - privkey: crypto.PrivateKey 对象,可能是 rsa.PrivateKey、ecdsa.PrivateKey 或 ed25519.PrivateKey。
|
||||
// - err: 错误。
|
||||
func ParsePrivateKeyFromPEM(privkeyPEM string) (privkey crypto.PrivateKey, err error) {
|
||||
func ParsePrivateKeyFromPEM(privkeyPEM string) (_privkey crypto.PrivateKey, _err error) {
|
||||
pemData := []byte(privkeyPEM)
|
||||
return certcrypto.ParsePEMPrivateKey(pemData)
|
||||
}
|
||||
@@ -58,7 +58,7 @@ func ParsePrivateKeyFromPEM(privkeyPEM string) (privkey crypto.PrivateKey, err e
|
||||
// 出参:
|
||||
// - privkey: ecdsa.PrivateKey 对象。
|
||||
// - err: 错误。
|
||||
func ParseECPrivateKeyFromPEM(privkeyPEM string) (privkey *ecdsa.PrivateKey, err error) {
|
||||
func ParseECPrivateKeyFromPEM(privkeyPEM string) (_privkey *ecdsa.PrivateKey, _err error) {
|
||||
pemData := []byte(privkeyPEM)
|
||||
|
||||
block, _ := pem.Decode(pemData)
|
||||
@@ -66,7 +66,7 @@ func ParseECPrivateKeyFromPEM(privkeyPEM string) (privkey *ecdsa.PrivateKey, err
|
||||
return nil, errors.New("failed to decode PEM block")
|
||||
}
|
||||
|
||||
privkey, err = x509.ParseECPrivateKey(block.Bytes)
|
||||
privkey, err := x509.ParseECPrivateKey(block.Bytes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse private key: %w", err)
|
||||
}
|
||||
@@ -82,7 +82,7 @@ func ParseECPrivateKeyFromPEM(privkeyPEM string) (privkey *ecdsa.PrivateKey, err
|
||||
// 出参:
|
||||
// - privkey: rsa.PrivateKey 对象。
|
||||
// - err: 错误。
|
||||
func ParsePKCS1PrivateKeyFromPEM(privkeyPEM string) (privkey *rsa.PrivateKey, err error) {
|
||||
func ParsePKCS1PrivateKeyFromPEM(privkeyPEM string) (_privkey *rsa.PrivateKey, _err error) {
|
||||
pemData := []byte(privkeyPEM)
|
||||
|
||||
block, _ := pem.Decode(pemData)
|
||||
@@ -90,7 +90,7 @@ func ParsePKCS1PrivateKeyFromPEM(privkeyPEM string) (privkey *rsa.PrivateKey, er
|
||||
return nil, errors.New("failed to decode PEM block")
|
||||
}
|
||||
|
||||
privkey, err = x509.ParsePKCS1PrivateKey(block.Bytes)
|
||||
privkey, err := x509.ParsePKCS1PrivateKey(block.Bytes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse private key: %w", err)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package typeutil
|
||||
|
||||
import "reflect"
|
||||
|
||||
// 将对象转换为指针。
|
||||
//
|
||||
// 入参:
|
||||
@@ -11,6 +13,22 @@ func ToPtr[T any](v T) (p *T) {
|
||||
return &v
|
||||
}
|
||||
|
||||
// 将非零值的对象转换为指针。
|
||||
// 与 [ToPtr] 不同的是,如果对象的值为零值,则返回 nil。
|
||||
//
|
||||
// 入参:
|
||||
// - 待转换的对象。
|
||||
//
|
||||
// 出参:
|
||||
// - 返回对象的指针。
|
||||
func ToPtrOrZeroNil[T any](v T) (p *T) {
|
||||
if reflect.ValueOf(v).IsZero() {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &v
|
||||
}
|
||||
|
||||
// 将指针转换为对象。
|
||||
//
|
||||
// 入参:
|
||||
|
||||
Reference in New Issue
Block a user