?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
import "crypto/x509/pkix"
概述
索引
如果c是指定主機(jī)的有效證書,則 VerifyHostname 返回 nil。否則,它會(huì)返回描述不匹配的錯(cuò)誤。
type AlgorithmIdentifier
type AttributeTypeAndValue
type AttributeTypeAndValueSET
type CertificateList
CertificateRequest 表示 PKCS#10,證書簽名請求。
type CertificateRequest struct { Raw []byte // 完整的ASN.1 DER內(nèi)容(CSR,簽名算法和簽名)。 RawTBSCertificateRequest []byte // 證書請求信息是原始ASN.1 DER內(nèi)容的一部分。 RawSubjectPublicKeyInfo []byte // DER編碼的SubjectPublicKeyInfo。 RawSubject []byte // DER編碼主題。 Version int Signature []byte SignatureAlgorithm SignatureAlgorithm PublicKeyAlgorithm PublicKeyAlgorithm PublicKey interface{} Subject pkix.Name // 屬性是bugs的干燥外殼,不應(yīng)使用。 Attributes []pkix.AttributeTypeAndValueSET // 擴(kuò)展包含原始X.509擴(kuò)展。 解析CSR時(shí),這個(gè) // 可用于提取未解析的擴(kuò)展 // 包。 Extensions []pkix.Extension // ExtraExtensions包含要復(fù)制的原始擴(kuò)展名 // marshaled CSR。 值會(huì)覆蓋否則將覆蓋的任何擴(kuò)展 // 基于其他領(lǐng)域產(chǎn)出,但被任何領(lǐng)域覆蓋 // 在Attributes中指定的擴(kuò)展名。 // // 解析CSR時(shí)未填充ExtraExtensions字段,請參閱 // Extensions。 ExtraExtensions []pkix.Extension // 主題備用名稱值。 DNSNames []string EmailAddresses []string IPAddresses []net.IP}
func ParseCertificateRequest(asn1Data []byte) (*CertificateRequest, error)
ParseCertificateRequest 解析來自給定 ASN.1 DER 數(shù)據(jù)的單個(gè)證書請求。
func (c *CertificateRequest) CheckSignature() error
CheckSignature 報(bào)告c上的簽名是否有效。
當(dāng)證書不允許請求的使用情況時(shí),會(huì)導(dǎo)致 ConstraintViolationError。例如:在公鑰不是證書簽名密鑰時(shí)檢查簽名。
type ConstraintViolationError struct{}
func (ConstraintViolationError) Error() string
ExtKeyUsage 表示對給定鍵有效的一組擴(kuò)展操作。每個(gè) ExtKeyUsage* 常量定義一個(gè)獨(dú)特的動(dòng)作。
type ExtKeyUsage int
const ( ExtKeyUsageAny ExtKeyUsage = iota ExtKeyUsageServerAuth ExtKeyUsageClientAuth ExtKeyUsageCodeSigning ExtKeyUsageEmailProtection ExtKeyUsageIPSECEndSystem ExtKeyUsageIPSECTunnel ExtKeyUsageIPSECUser ExtKeyUsageTimeStamping ExtKeyUsageOCSPSigning ExtKeyUsageMicrosoftServerGatedCrypto ExtKeyUsageNetscapeServerGatedCrypto)
HostnameError 在授權(quán)名稱集與請求名稱不匹配時(shí)產(chǎn)生。
type HostnameError struct { Certificate *Certificate Host string}
func (h HostnameError) Error() string
一個(gè) InsecureAlgorithmError
type InsecureAlgorithmError SignatureAlgorithm
func (e InsecureAlgorithmError) Error() string
type InvalidReason int
const ( // 當(dāng)另一個(gè)證書簽署證書時(shí),NotAuthorizedToSign會(huì)生成結(jié)果 // 未標(biāo)記為CA證書。 NotAuthorizedToSign InvalidReason = iota // 證書過期時(shí)根據(jù)時(shí)間過期的結(jié)果 // 在VerifyOptions中給出。 Expired // 當(dāng)中間或根時(shí),結(jié)果為CANotAuthorizedForThisName // certificate具有名稱約束,不包括名稱 // 被檢查。 CANotAuthorizedForThisName // 當(dāng)路徑長度約束為時(shí),TooManyIntermediates結(jié)果 // 被侵犯。 TooManyIntermediates // 證書的密鑰用法表示不兼容的使用結(jié)果 // 它可能只用于不同的目的。 IncompatibleUsage // 當(dāng)父證書的主題名稱時(shí),NameMismatch結(jié)果 // 與子項(xiàng)中的頒發(fā)者名稱不匹配。 NameMismatch)
KeyUsage 表示對給定密鑰有效的一組操作。這是一個(gè) 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)