@jajabin

Правильная реализация структуры rfc2634 на Go?

Реализовал следующим способом структуры rfc2634 на Go.
SigningCertificate ::=  SEQUENCE {
    certs        SEQUENCE OF ESSCertID,
    policies     SEQUENCE OF PolicyInformation OPTIONAL
}

id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
    member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
    smime(16) id-aa(2) 12 }

ESSCertID ::=  SEQUENCE {
     certHash                 Hash,
     issuerSerial             IssuerSerial OPTIONAL
}

Hash ::= OCTET STRING -- SHA1 hash of entire certificate

IssuerSerial ::= SEQUENCE {
     issuer                   GeneralNames,
     serialNumber             CertificateSerialNumber
}

var oidAttributeSigningCert   = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 9, 16, 2, 12}
type SignerCertificate struct {
	SigningCertificate SigningCertificate `asn1:"sequence"`
	Policies           PolicyInformation  `asn1:"sequence,optional"`
}

type PolicyInformation struct {
}

type SigningCertificate struct {
	ESSCertID ESSCertID `asn1:"sequence"`
}

type ESSCertID struct {
	IssuerAndSerial IssuerAndSerial `asn1:"optional"`
	Hash            []byte          `asn1:"explicit,tag:0"`
}


Добавляю к сигнатуре данный атрибут, она формируется без ошибок, проверяю на любом верификаторе, там ошибка в разборе ans1 ,выводит данные которые были кодированы до сертификата(его не показывает верификатор). Я предполагаю дело в тегах структуры, как мне их выставить правильно для реализации структуры rfc ?
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы