Spec-Zone.ru › Go

Пакет pkix

  • import "crypto/x509/pkix"
  • Обзор
  • Указатель

Обзор

Пакет pkix содержит общие низкоуровневые структуры, используемые для разбора ASN.1 и сериализации сертификатов X.509, CRL и OCSP.

Указатель

  • тип AlgorithmIdentifier
  • тип AttributeTypeAndValue
  • тип AttributeTypeAndValueSET
  • тип CertificateList
  • функция (certList *CertificateList) HasExpired(now time.Time) bool
  • тип Extension
  • тип Name
  • функция (n *Name) FillFromRDNSequence(rdns *RDNSequence)
  • функция (n Name) String() string
  • функция (n Name) ToRDNSequence() (ret RDNSequence)
  • тип RDNSequence
  • функция (r RDNSequence) String() string
  • тип RelativeDistinguishedNameSET
  • тип RevokedCertificate
  • тип TBSCertificateList

Файлы пакета

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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API