Documentation ¶
Overview ¶
Package moooncrypto Wrote by yijian on 2024/01/25
Package moooncrypto Wrote by yijian on 2024/01/25
Package moooncrypto Wrote by yijian on 2024/01/25
Package moooncrypto Wrote by yijian on 2024/01/25
Package moooncrypto Wrote by yijian on 2024/05/09
Package moooncrypto Wrote by yijian on 2024/01/02
Package moooncrypto Wrote by yijian on 2024/01/02
Package moooncrypto Wrote by yijian on 2024/01/02
Index ¶
- func AesCBCDecryptText(key, data string) (string, error)
- func AesCBCEncryptText(key, data string) (string, error)
- func AesCFBDecryptText(key, data string) (string, error)
- func AesCFBEncryptText(key, data string) (string, error)
- func AesOFBDecryptText(key, data string) (string, error)
- func AesOFBEncryptText(key, data string) (string, error)
- func ExtractCertAndKeyFromP12(p12Data []byte, password string) (string, string, error)
- func HmacSha256Sign(data, key string, toUpper bool) (string, error)
- func IsEcPemPrivateKey(s string) bool
- func IsOpenSslPemPrivateKey(s string) bool
- func IsP1PemPrivateKey(s string) bool
- func IsP7PemCertificate(s string) bool
- func IsP8PemPrivateKey(s string) bool
- func IsPemCertificate(s string) bool
- func Md5Sum(data string, toUpper bool) string
- func RsaSha256SignWithPrivateKey(privateKey *rsa.PrivateKey, data []byte) (string, error)
- func RsaSha256SignWithPrivateKeyStr(privateKeyStr []byte, data []byte) (string, error)
- type CertInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AesCBCDecryptText ¶
AesCBCDecryptText 解密文本 key 解密密钥,值同加密密钥,长度不能超过 32 个字符,否则返回 error。如果不是 16、24 和 32 整的倍数,则会自动补 0 填充到最近的长度。
func AesCBCEncryptText ¶
AesCBCEncryptText 加密文本 key 加密密钥,长度不能超过 32 个字符,否则返回 error。如果不是 16、24 和 32 整的倍数,则会自动补 0 填充到最近的长度。
func AesCFBDecryptText ¶
AesCFBDecryptText 解密文本 key 解密密钥,值同加密密钥,长度不能超过 32 个字符,否则返回 error。如果不是 16、24 和 32 整的倍数,则会自动补 0 填充到最近的长度。
func AesCFBEncryptText ¶
AesCFBEncryptText 加密文本 key 加密密钥,长度不能超过 32 个字符,否则返回 error。如果不是 16、24 和 32 整的倍数,则会自动补 0 填充到最近的长度。
func AesOFBDecryptText ¶
AesOFBDecryptText 解密文本 key 解密密钥,值同加密密钥,长度不能超过 32 个字符,否则返回 error。如果不是 16、24 和 32 整的倍数,则会自动补 0 填充到最近的长度。
func AesOFBEncryptText ¶
AesOFBEncryptText 加密文本 key 加密密钥,长度不能超过 32 个字符,否则返回 error。如果不是 16、24 和 32 整的倍数,则会自动补 0 填充到最近的长度。
func ExtractCertAndKeyFromP12 ¶
ExtractCertAndKeyFromP12 P12 文件是一种用于存储和传输用户或服务器私钥、公钥和证书的二进制格式文件,也称为 PFX 文件。 它遵循 Public Key Cryptography Standards #12(PKCS#12)标准,该标准为这些密钥和证书提供了一个可移植的格式。 P12 文件通常包含开发者的公钥和私钥,以及一个证书链,用于验证开发者的身份。
PEM(Privacy-Enhanced Mail)证书是一种使用 Base64 ASCII 编码的纯文本格式,通常具有 .crt 或 .pem 扩展名。 PEM 证书包含证书主体的公开信息、公钥信息以及签署证书的证书颁发机构(CA)的信息。 PEM 证书主要用于存储和传输证书,例如在 HTTPS 服务器上使用的 SSL/TLS 证书。
可从 P12 文件提取出证书和私钥,也可将证书和私钥打包为 P12 文件: 1)openssl genrsa -out private_key.pem 2048 # 生成一个 PKCS#1 格式的 2048 位 RSA 私钥 2)openssl pkcs8 -topk8 -inform PEM -outform PEM -in private_key.pem -out private_key_pkcs8.pem -nocrypt # 将 PKCS#1 格式的私钥转换为 PKCS#8 格式 3)openssl req -new -key private_key.pem -out cert_request.csr # 生成证书签名请求(CSR) 4)openssl x509 -req -days 365 -in cert_request.csr -signkey private_key.pem -out self_signed_cert.pem # 生成自签名证书 5)openssl pkcs12 -export -in self_signed_cert.pem -inkey private_key.pem -out certificate.p12 # 生成 P12 文件
返回值分别为:PEM 证书、PEM 私钥和 error 参数 password 为解密 P12 数据 p12Data 的密码
func HmacSha256Sign ¶
HmacSha256Sign SHA256 签名 data 需要签名的数据 key 签名密钥 toUpper 为 true 返回大写的签名字符串,为 false 返回小写的签名字符串
func IsEcPemPrivateKey ¶
IsEcPemPrivateKey 判断字符串是否为 ECDSA 格式的 PEM 格式的私钥
func IsOpenSslPemPrivateKey ¶
IsOpenSslPemPrivateKey 判断字符串是否为 OpenSSL 格式的 PEM 格式的私钥
func IsP1PemPrivateKey ¶
IsP1PemPrivateKey 判断字符串是否为 PKCS#1 格式的 PEM 格式的私钥
func IsP7PemCertificate ¶
IsP7PemCertificate 判断字符串是否为 PKCS#7 格式的 PEM 格式的证书
func IsP8PemPrivateKey ¶
IsP8PemPrivateKey 判断字符串是否为 PKCS#8 格式的 PEM 格式的私钥
func IsPemCertificate ¶
IsPemCertificate 判断字符串是否为 PEM 格式的 X.509 证书
func RsaSha256SignWithPrivateKey ¶
func RsaSha256SignWithPrivateKey(privateKey *rsa.PrivateKey, data []byte) (string, error)
Types ¶
type CertInfo ¶
type CertInfo struct { Ver int `json:"ver"` // 证书版本 No10 string `json:"cert_no_10"` // 证书序列号(十进制) No16 string `json:"cert_no_16"` // 证书序列号(十六进制) Subject string `json:"subject"` // 证书主题 StartTime time.Time `json:"start_time"` // 证书开始时间 StopTime time.Time `json:"stop_time"` // 证书结束时间 Issuer string `json:"issuer"` // 证书颁发者 PublicKeyAlgorithm string `json:"public_key_algorithm"` // 公钥算法 SignatureAlgorithm string `json:"signature_algorithm"` // 签名算法 PublicKey string `json:"public_key"` // 公钥 Signature string `json:"signature"` // 签名 KeyUsage int `json:"key_usage"` // 密钥用途 SubjectKeyId string `json:"subject_key_id"` // 主题密钥标识 AuthorityKeyId string `json:"authority_key_id"` // 颁发者密钥标识 }