©
本文档使用 PHP中文网手册 发布
import "crypto/x509/pkix"
概述
索引
如果c是指定主机的有效证书,则 VerifyHostname 返回 nil。否则,它会返回描述不匹配的错误。
type AlgorithmIdentifier
type AttributeTypeAndValue
type AttributeTypeAndValueSET
type CertificateList
CertificateRequest 表示 PKCS#10,证书签名请求。
type CertificateRequest struct { Raw []byte // 完整的ASN.1 DER内容(CSR,签名算法和签名)。 RawTBSCertificateRequest []byte // 证书请求信息是原始ASN.1 DER内容的一部分。 RawSubjectPublicKeyInfo []byte // DER编码的SubjectPublicKeyInfo。 RawSubject []byte // DER编码主题。 Version int Signature []byte SignatureAlgorithm SignatureAlgorithm PublicKeyAlgorithm PublicKeyAlgorithm PublicKey interface{} Subject pkix.Name // 属性是bugs的干燥外壳,不应使用。 Attributes []pkix.AttributeTypeAndValueSET // 扩展包含原始X.509扩展。 解析CSR时,这个 // 可用于提取未解析的扩展 // 包。 Extensions []pkix.Extension // ExtraExtensions包含要复制的原始扩展名 // marshaled CSR。 值会覆盖否则将覆盖的任何扩展 // 基于其他领域产出,但被任何领域覆盖 // 在Attributes中指定的扩展名。 // // 解析CSR时未填充ExtraExtensions字段,请参阅 // Extensions。 ExtraExtensions []pkix.Extension // 主题备用名称值。 DNSNames []string EmailAddresses []string IPAddresses []net.IP}
func ParseCertificateRequest(asn1Data []byte) (*CertificateRequest, error)
ParseCertificateRequest 解析来自给定 ASN.1 DER 数据的单个证书请求。
func (c *CertificateRequest) CheckSignature() error
CheckSignature 报告c上的签名是否有效。
当证书不允许请求的使用情况时,会导致 ConstraintViolationError。例如:在公钥不是证书签名密钥时检查签名。
type ConstraintViolationError struct{}
func (ConstraintViolationError) Error() string
ExtKeyUsage 表示对给定键有效的一组扩展操作。每个 ExtKeyUsage* 常量定义一个独特的动作。
type ExtKeyUsage int
const ( ExtKeyUsageAny ExtKeyUsage = iota ExtKeyUsageServerAuth ExtKeyUsageClientAuth ExtKeyUsageCodeSigning ExtKeyUsageEmailProtection ExtKeyUsageIPSECEndSystem ExtKeyUsageIPSECTunnel ExtKeyUsageIPSECUser ExtKeyUsageTimeStamping ExtKeyUsageOCSPSigning ExtKeyUsageMicrosoftServerGatedCrypto ExtKeyUsageNetscapeServerGatedCrypto)
HostnameError 在授权名称集与请求名称不匹配时产生。
type HostnameError struct { Certificate *Certificate Host string}
func (h HostnameError) Error() string
一个 InsecureAlgorithmError
type InsecureAlgorithmError SignatureAlgorithm
func (e InsecureAlgorithmError) Error() string
type InvalidReason int
const ( // 当另一个证书签署证书时,NotAuthorizedToSign会生成结果 // 未标记为CA证书。 NotAuthorizedToSign InvalidReason = iota // 证书过期时根据时间过期的结果 // 在VerifyOptions中给出。 Expired // 当中间或根时,结果为CANotAuthorizedForThisName // certificate具有名称约束,不包括名称 // 被检查。 CANotAuthorizedForThisName // 当路径长度约束为时,TooManyIntermediates结果 // 被侵犯。 TooManyIntermediates // 证书的密钥用法表示不兼容的使用结果 // 它可能只用于不同的目的。 IncompatibleUsage // 当父证书的主题名称时,NameMismatch结果 // 与子项中的颁发者名称不匹配。 NameMismatch)
KeyUsage 表示对给定密钥有效的一组操作。这是一个 KeyUsage* 常量的位图。
type KeyUsage int
const ( KeyUsageDigitalSignature KeyUsage = 1 << iota KeyUsageContentCommitment KeyUsageKeyEncipherment KeyUsageDataEncipherment KeyUsageKeyAgreement KeyUsageCertSign KeyUsageCRLSign KeyUsageEncipherOnly KeyUsageDecipherOnly)
type PEMCipher int
EncryptPEMBlock 加密算法的可能值。
const ( PEMCipherDES PEMCipher PEMCipher3DES PEMCipherAES128 PEMCipherAES192 PEMCipherAES256)
type PublicKeyAlgorithm int
const ( UnknownPublicKeyAlgorithm PublicKeyAlgorithm = iota RSA DSA ECDSA)
type SignatureAlgorithm int
const ( UnknownSignatureAlgorithm SignatureAlgorithm = iota MD2WithRSA MD5WithRSA SHA1WithRSA SHA256WithRSA SHA384WithRSA SHA512WithRSA DSAWithSHA1 DSAWithSHA256 ECDSAWithSHA1 ECDSAWithSHA256 ECDSAWithSHA384 ECDSAWithSHA512 SHA256WithRSAPSS SHA384WithRSAPSS SHA512WithRSAPSS)