Skip to main content

tls

函数名函数描述/介绍
tls.DecryptWithPkcs1v15DecryptWithPkcs1v15/RSADecryptWithPKCS1v15 使用 RSA私钥 和 PKCS#1 v1.5填充方式 解密给定的密文。 参数 raw 表示 RSA 私钥,支持以下格式: - DER 编码的私钥(raw ASN.1 DER 字节流) - Base64...
tls.EncryptWithPkcs1v15EncryptWithPkcs1v15/RSAEncryptWithPKCS1v15 使用 RSA 公钥和 PKCS#1 v1.5 填充方式对给定数据进行加密。 参数 raw 表示 RSA 公钥,支持以下格式: - DER 编码的公钥(raw ASN.1 DER 字节流) - Ba...
tls.GenerateClientCertGenerateClientCert 使用给定的 CA 签发一个客户端证书。 caCertPEM 和 caKeyPEM 是 PEM 编码的 CA 证书和私钥。
tls.GenerateRSA1024KeyPairGenerateRSA1024KeyPair 生成1024位大小的RSA公私钥对,返回PEM格式公钥和私钥与错误
tls.GenerateRSA2048KeyPairGenerateRSA2048KeyPair 生成2048位大小的RSA公私钥对,返回PEM格式公钥和私钥与错误
tls.GenerateRSA4096KeyPairGenerateRSA4096KeyPair 生成4096位大小的RSA公私钥对,返回PEM格式公钥和私钥与错误
tls.GenerateRSAKeyPairGenerateRSAKeyPair 根据给定的bit大小生成RSA公私钥对,返回PEM格式公钥和私钥与错误
tls.GenerateRootCAGenerateRootCA 根据名字生成根证书和私钥,返回PEM格式证书和私钥与错误
tls.GenerateSM2KeyPairGenerateSM2KeyPair 生成SM2公私钥对,返回PEM格式公钥和私钥与错误
tls.GenerateServerCertGenerateServerCert 使用给定的 CA 签发一个服务器证书。 caCertPEM 和 caKeyPEM 是 PEM 编码的 CA 证书和私钥。
tls.InspectInspect 检查目标地址的TLS证书,并返回其证书信息与错误
tls.InspectForceHttp1_1InspectForceHttp1_1 检查目标地址的TLS证书,并返回其证书信息与错误,强制使用HTTP/1.1协议
tls.InspectForceHttp2InspectForceHttp2 检查目标地址的TLS证书,并返回其证书信息与错误,强制使用HTTP/2协议
tls.SignClientCertAndKeySignClientCertAndKey 根据给定的CA证书和私钥,生成不包含认证的客户端证书和密钥,返回PEM格式的客户端证书和密钥与错误
tls.SignServerCertAndKeySignServerCertAndKey 根据给定的CA证书和私钥,生成不包含认证的服务器证书和密钥,返回PEM格式的服务器证书和密钥与错误
tls.SignX509ClientCertAndKeySignX509ClientCertAndKey 根据给定的CA证书和私钥,生成客户端证书和密钥,返回PEM格式的客户端证书和密钥与错误
tls.SignX509ServerCertAndKeySignX509ServerCertAndKey 根据给定的CA证书和私钥,生成服务器证书和密钥,返回PEM格式的服务器证书和密钥与错误
tls.alternativeDNSWithAlternativeDNS 添加一个或多个 DNS 备用名称 (SAN)。
tls.alternativeIPWithAlternativeIPStrings 添加一个或多个字符串格式的 IP 备用名称 (SAN)。 无效的 IP 字符串将被忽略。
tls.commonNameWithCommonName 设置证书的通用名称 (Common Name)。
tls.country
tls.locality
tls.notAfterWithNotAfter 设置证书的过期时间。
tls.notBeforeWithNotBefore 设置证书的生效时间。
tls.organizationWithOrganization 设置证书的组织 (Organization)。
tls.privateKeyFromFile
tls.privateKeyFromRaw
tls.province
tls.validityWithValidity 设置证书的有效期(从现在开始,持续时间为 duration)。

函数定义#

DecryptWithPkcs1v15#

详细描述#

DecryptWithPkcs1v15/RSADecryptWithPKCS1v15 使用 RSA私钥 和 PKCS#1 v1.5填充方式 解密给定的密文。

参数 raw 表示 RSA 私钥,支持以下格式:

  • DER 编码的私钥(raw ASN.1 DER 字节流)

  • Base64 编码的 DER 格式(自动解码)

  • PEM 编码(包括带有 "-----BEGIN PRIVATE KEY-----" 或 "-----BEGIN RSA PRIVATE KEY-----" 的块)

  • Base64 编码的 PEM 格式(自动解码)

参数 data 是被加密后的数据(密文)

返回值是解密得到的原始明文,如果失败则返回错误。

Example:


        raw := `        -----BEGIN PRIVATE KEY-----        MIIEvQIBADANBgkqhkiG9w0BAQEFAASC...(略)        -----END PRIVATE KEY-----        `        plaintext, err := DecryptWithPkcs1v15(raw, encryptedData)        plaintext, err := RSADecryptWithPKCS1v15(raw, encryptedData)

定义#

DecryptWithPkcs1v15(raw []byte, data any) ([]byte, error)

参数#

参数名参数类型参数解释
raw[]byte
dataany

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2error

EncryptWithPkcs1v15#

详细描述#

EncryptWithPkcs1v15/RSAEncryptWithPKCS1v15 使用 RSA 公钥和 PKCS#1 v1.5 填充方式对给定数据进行加密。

参数 raw 表示 RSA 公钥,支持以下格式:

  • DER 编码的公钥(raw ASN.1 DER 字节流)

  • Base64 编码的 DER 格式(自动解码)

  • PEM 编码(例如 "-----BEGIN PUBLIC KEY-----" 或 "-----BEGIN RSA PUBLIC KEY-----" 块)

  • Base64 编码的 PEM 格式(自动解码)

参数 data 是要加密的明文数据,可以是 []byte、string 或其他可转换为字节数组的类型。

返回值是加密后的密文(字节切片),如果加密失败则返回错误。

Example:


        raw := `        -----BEGIN PUBLIC KEY-----        MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn...(略)        -----END PUBLIC KEY-----        `        ciphertext, err := EncryptWithPkcs1v15(raw, "hello world")     ciphertext, err := RSAEncryptWithPKCS1v15(raw, "hello world")

定义#

EncryptWithPkcs1v15(raw []byte, data any) ([]byte, error)

参数#

参数名参数类型参数解释
raw[]byte
dataany

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2error

GenerateClientCert#

详细描述#

GenerateClientCert 使用给定的 CA 签发一个客户端证书。 caCertPEM 和 caKeyPEM 是 PEM 编码的 CA 证书和私钥。

定义#

GenerateClientCert(caCertPEM []byte, caKeyPEM []byte, opts ...CertOption) ([]byte, []byte, error)

参数#

参数名参数类型参数解释
caCertPEM[]byte
caKeyPEM[]byte
opts...CertOption

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2[]byte
r3error

GenerateRSA1024KeyPair#

详细描述#

GenerateRSA1024KeyPair 生成1024位大小的RSA公私钥对,返回PEM格式公钥和私钥与错误

Example:

pub, pri, err := tls.GenerateRSA1024KeyPair()

定义#

GenerateRSA1024KeyPair() ([]byte, []byte, error)

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2[]byte
r3error

GenerateRSA2048KeyPair#

详细描述#

GenerateRSA2048KeyPair 生成2048位大小的RSA公私钥对,返回PEM格式公钥和私钥与错误

Example:

pub, pri, err := tls.GenerateRSA2048KeyPair()

定义#

GenerateRSA2048KeyPair() ([]byte, []byte, error)

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2[]byte
r3error

GenerateRSA4096KeyPair#

详细描述#

GenerateRSA4096KeyPair 生成4096位大小的RSA公私钥对,返回PEM格式公钥和私钥与错误

Example:

pub, pri, err := tls.GenerateRSA4096KeyPair()

定义#

GenerateRSA4096KeyPair() ([]byte, []byte, error)

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2[]byte
r3error

GenerateRSAKeyPair#

详细描述#

GenerateRSAKeyPair 根据给定的bit大小生成RSA公私钥对,返回PEM格式公钥和私钥与错误

Example:

pub, pri, err := tls.GenerateRSAKeyPair(2048)

定义#

GenerateRSAKeyPair(bitSize int) ([]byte, []byte, error)

参数#

参数名参数类型参数解释
bitSizeint

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2[]byte
r3error

GenerateRootCA#

详细描述#

GenerateRootCA 根据名字生成根证书和私钥,返回PEM格式证书和私钥与错误

Example:

cert, key, err := tls.GenerateRootCA("yaklang.io")

定义#

GenerateRootCA(commonName string, opts ...tlsutils.CertOption) (ca []byte, key []byte, err error)

参数#

参数名参数类型参数解释
commonNamestring
opts...tlsutils.CertOption

返回值#

返回值(顺序)返回值类型返回值解释
ca[]byte
key[]byte
errerror

GenerateSM2KeyPair#

详细描述#

GenerateSM2KeyPair 生成SM2公私钥对,返回PEM格式公钥和私钥与错误

Example:

pub, pri, err := tls.GenerateSM2KeyPair()

定义#

GenerateSM2KeyPair() ([]byte, []byte, error)

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2[]byte
r3error

GenerateServerCert#

详细描述#

GenerateServerCert 使用给定的 CA 签发一个服务器证书。 caCertPEM 和 caKeyPEM 是 PEM 编码的 CA 证书和私钥。

定义#

GenerateServerCert(caCertPEM []byte, caKeyPEM []byte, opts ...CertOption) ([]byte, []byte, error)

参数#

参数名参数类型参数解释
caCertPEM[]byte
caKeyPEM[]byte
opts...CertOption

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2[]byte
r3error

Inspect#

详细描述#

Inspect 检查目标地址的TLS证书,并返回其证书信息与错误

Example:

cert, err := tls.Inspect("yaklang.io:443")

定义#

Inspect(addr string) ([]*TLSInspectResult, error)

参数#

参数名参数类型参数解释
addrstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]*TLSInspectResult
r2error

InspectForceHttp1_1#

详细描述#

InspectForceHttp1_1 检查目标地址的TLS证书,并返回其证书信息与错误,强制使用HTTP/1.1协议

Example:

cert, err := tls.InspectForceHttp1_1("yaklang.io:443")

定义#

InspectForceHttp1_1(addr string) ([]*TLSInspectResult, error)

参数#

参数名参数类型参数解释
addrstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]*TLSInspectResult
r2error

InspectForceHttp2#

详细描述#

InspectForceHttp2 检查目标地址的TLS证书,并返回其证书信息与错误,强制使用HTTP/2协议

Example:

cert, err := tls.InspectForceHttp2("yaklang.io:443")

定义#

InspectForceHttp2(addr string) ([]*TLSInspectResult, error)

参数#

参数名参数类型参数解释
addrstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]*TLSInspectResult
r2error

SignClientCertAndKey#

详细描述#

SignClientCertAndKey 根据给定的CA证书和私钥,生成不包含认证的客户端证书和密钥,返回PEM格式的客户端证书和密钥与错误

Example:

ca, key, err = tls.GenerateRootCA("yaklang.io")cert, sKey, err = tls.SignClientCertAndKey(ca, key)

定义#

SignClientCertAndKey(ca []byte, key []byte) ([]byte, []byte, error)

参数#

参数名参数类型参数解释
ca[]byte
key[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2[]byte
r3error

SignServerCertAndKey#

详细描述#

SignServerCertAndKey 根据给定的CA证书和私钥,生成不包含认证的服务器证书和密钥,返回PEM格式的服务器证书和密钥与错误

Example:

ca, key, err = tls.GenerateRootCA("yaklang.io")cert, sKey, err = tls.SignServerCertAndKey(ca, key)

定义#

SignServerCertAndKey(ca []byte, key []byte) (cert []byte, sKey []byte, _ error)

参数#

参数名参数类型参数解释
ca[]byte
key[]byte

返回值#

返回值(顺序)返回值类型返回值解释
cert[]byte
sKey[]byte
_error

SignX509ClientCertAndKey#

详细描述#

SignX509ClientCertAndKey 根据给定的CA证书和私钥,生成客户端证书和密钥,返回PEM格式的客户端证书和密钥与错误

Example:

ca, key, err = tls.GenerateRootCA("yaklang.io")cert, sKey, err = tls.SignX509ClientCertAndKey(ca, key)

定义#

SignX509ClientCertAndKey(ca []byte, key []byte) ([]byte, []byte, error)

参数#

参数名参数类型参数解释
ca[]byte
key[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2[]byte
r3error

SignX509ServerCertAndKey#

详细描述#

SignX509ServerCertAndKey 根据给定的CA证书和私钥,生成服务器证书和密钥,返回PEM格式的服务器证书和密钥与错误

Example:

ca, key, err = tls.GenerateRootCA("yaklang.io")cert, sKey, err = tls.SignX509ServerCertAndKey(ca, key)

定义#

SignX509ServerCertAndKey(ca []byte, key []byte) (cert []byte, sKey []byte, _ error)

参数#

参数名参数类型参数解释
ca[]byte
key[]byte

返回值#

返回值(顺序)返回值类型返回值解释
cert[]byte
sKey[]byte
_error

alternativeDNS#

详细描述#

WithAlternativeDNS 添加一个或多个 DNS 备用名称 (SAN)。

定义#

alternativeDNS(dnsNames ...string) CertOption

参数#

参数名参数类型参数解释
dnsNames...string

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

alternativeIP#

详细描述#

WithAlternativeIPStrings 添加一个或多个字符串格式的 IP 备用名称 (SAN)。 无效的 IP 字符串将被忽略。

定义#

alternativeIP(ipStrings ...string) CertOption

参数#

参数名参数类型参数解释
ipStrings...string

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

commonName#

详细描述#

WithCommonName 设置证书的通用名称 (Common Name)。

定义#

commonName(cn string) CertOption

参数#

参数名参数类型参数解释
cnstring

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

country#

详细描述#

定义#

country(country string) CertOption

参数#

参数名参数类型参数解释
countrystring

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

locality#

详细描述#

定义#

locality(locality string) CertOption

参数#

参数名参数类型参数解释
localitystring

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

notAfter#

详细描述#

WithNotAfter 设置证书的过期时间。

定义#

notAfter(t time.Time) CertOption

参数#

参数名参数类型参数解释
ttime.Time

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

notBefore#

详细描述#

WithNotBefore 设置证书的生效时间。

定义#

notBefore(t time.Time) CertOption

参数#

参数名参数类型参数解释
ttime.Time

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

organization#

详细描述#

WithOrganization 设置证书的组织 (Organization)。

定义#

organization(org string) CertOption

参数#

参数名参数类型参数解释
orgstring

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

privateKeyFromFile#

详细描述#

定义#

privateKeyFromFile(path string) CertOption

参数#

参数名参数类型参数解释
pathstring

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

privateKeyFromRaw#

详细描述#

定义#

privateKeyFromRaw(key []byte) CertOption

参数#

参数名参数类型参数解释
key[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

province#

详细描述#

定义#

province(province string) CertOption

参数#

参数名参数类型参数解释
provincestring

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption

validity#

详细描述#

WithValidity 设置证书的有效期(从现在开始,持续时间为 duration)。

定义#

validity(duration time.Duration) CertOption

参数#

参数名参数类型参数解释
durationtime.Duration

返回值#

返回值(顺序)返回值类型返回值解释
r1CertOption