Пакет pkix
Обзор
Пакет pkix содержит общие низкоуровневые структуры, используемые для разбора ASN.1 и сериализации сертификатов X.509, CRL и OCSP.
Указатель
Файлы пакета
pkix.go
тип AlgorithmIdentifier
AlgorithmIdentifier представляет одноимённую структуру ASN.1. См. RFC 5280, раздел 4.1.1.2.
type AlgorithmIdentifier struct {
Algorithm asn1.ObjectIdentifier
Parameters asn1.RawValue `asn1:"optional"`
}
тип AttributeTypeAndValue
AttributeTypeAndValue соответствует одноимённой структуре ASN.1 из RFC 5280, раздел 4.1.2.4.
При разборе в составе структуры pkix.Name в типе crypto/x509 значение будет иметь тип
- string, если тип ASN.1 — PrintableString, IA5String, NumericString, BMPString, T61String или UTF8String;
- int64, если тип ASN.1 — INTEGER;
- asn1.BitString, если тип ASN.1 — BIT STRING;
- []byte, если тип ASN.1 — OCTET STRING;
- asn1.ObjectIdentifier, если тип ASN.1 — OBJECT IDENTIFIER;
- time.Time, если тип ASN.1 — UTCTIME или GENERALIZEDTIME;
- bool, если тип ASN.1 — BOOLEAN;
- nil, если тип ASN.1 — NULL;
- в остальных случаях — asn1.RawValue.
type AttributeTypeAndValue struct {
Type asn1.ObjectIdentifier
Value any
}
тип AttributeTypeAndValueSET 1.3
AttributeTypeAndValueSET представляет набор последовательностей ASN.1 AttributeTypeAndValue из RFC 2986 (PKCS #10).
type AttributeTypeAndValueSET struct {
Type asn1.ObjectIdentifier
Value [][]AttributeTypeAndValue `asn1:"set"`
}
тип CertificateList
CertificateList представляет одноимённую структуру ASN.1. См. RFC 5280, раздел 5.1. Для проверки подписи используйте Certificate.CheckCRLSignature.
Устарело: вместо этого следует использовать x509.RevocationList.
type CertificateList struct {
TBSCertList TBSCertificateList
SignatureAlgorithm AlgorithmIdentifier
SignatureValue asn1.BitString
}
функция (*CertificateList) HasExpired
func (certList *CertificateList) HasExpired(now time.Time) bool
HasExpired сообщает, следовало ли уже обновить certList.
тип Extension
Extension представляет одноимённую структуру ASN.1. См. RFC 5280, раздел 4.2.
type Extension struct {
Id asn1.ObjectIdentifier
Critical bool `asn1:"optional"`
Value []byte
}
тип Name
Name представляет различительное имя X.509. Оно включает только основные элементы DN. Обратите внимание, что Name лишь приближённо соответствует структуре X.509. Если требуется точное представление, выполните asn1.Unmarshal для необработанного значения subject или issuer как RDNSequence.
type Name struct {
Country, Organization, OrganizationalUnit []string
Locality, Province []string
StreetAddress, PostalCode []string
SerialNumber, CommonName string
// Names contains all parsed attributes. When parsing distinguished names,
// this can be used to extract non-standard attributes that are not parsed
// by this package. When marshaling to RDNSequences, the Names field is
// ignored, see ExtraNames.
Names []AttributeTypeAndValue
// ExtraNames contains attributes to be copied, raw, into any marshaled
// distinguished names. Values override any attributes with the same OID.
// The ExtraNames field is not populated when parsing, see Names.
ExtraNames []AttributeTypeAndValue // Go 1.5
}
функция (*Name) FillFromRDNSequence
func (n *Name) FillFromRDNSequence(rdns *RDNSequence)
FillFromRDNSequence заполняет n данными из указанной RDNSequence. RDN с несколькими записями разворачиваются, все записи добавляются в соответствующие поля n, а их группировка не сохраняется.
функция (Name) String 1.10
func (n Name) String() string
String возвращает строковое представление n, приблизительно соответствующее синтаксису различительных имён RFC 2253.
функция (Name) ToRDNSequence
func (n Name) ToRDNSequence() (ret RDNSequence)
ToRDNSequence преобразует n в одну RDNSequence. Следующие атрибуты кодируются как RDN со множеством значений:
- Country
- Organization
- OrganizationalUnit
- Locality
- Province
- StreetAddress
- PostalCode
Каждая запись ExtraNames кодируется как отдельный RDN.
тип RDNSequence
type RDNSequence []RelativeDistinguishedNameSET
функция (RDNSequence) String 1.10
func (r RDNSequence) String() string
String возвращает строковое представление последовательности r, приблизительно соответствующее синтаксису различительных имён RFC 2253.
тип RelativeDistinguishedNameSET
type RelativeDistinguishedNameSET []AttributeTypeAndValue
тип RevokedCertificate
RevokedCertificate представляет одноимённую структуру ASN.1. См. RFC 5280, раздел 5.1.
type RevokedCertificate struct {
SerialNumber *big.Int
RevocationTime time.Time
Extensions []Extension `asn1:"optional"`
}
тип TBSCertificateList
TBSCertificateList представляет одноимённую структуру ASN.1. См. RFC 5280, раздел 5.1.
Устарело: вместо этого следует использовать x509.RevocationList.
type TBSCertificateList struct {
Raw asn1.RawContent
Version int `asn1:"optional,default:0"`
Signature AlgorithmIdentifier
Issuer RDNSequence
ThisUpdate time.Time
NextUpdate time.Time `asn1:"optional"`
RevokedCertificates []RevokedCertificate `asn1:"optional"`
Extensions []Extension `asn1:"tag:0,optional,explicit"`
}
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/crypto/x509/pkix/