export ParseName for tls/tlcp to parse certificate authorities

This commit is contained in:
Sun Yimin 2022-11-09 16:18:08 +08:00 committed by GitHub
parent 7490af1dca
commit b7c636b87d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -102,9 +102,8 @@ func parseASN1String(tag cryptobyte_asn1.Tag, value []byte) (string, error) {
return "", fmt.Errorf("unsupported string type: %v", tag) return "", fmt.Errorf("unsupported string type: %v", tag)
} }
// parseName parses a DER encoded Name as defined in RFC 5280. We may // ParseName parses a DER encoded Name as defined in RFC 5280.
// want to export this function in the future for use in crypto/tls. func ParseName(raw cryptobyte.String) (*pkix.RDNSequence, error) {
func parseName(raw cryptobyte.String) (*pkix.RDNSequence, error) {
if !raw.ReadASN1(&raw, cryptobyte_asn1.SEQUENCE) { if !raw.ReadASN1(&raw, cryptobyte_asn1.SEQUENCE) {
return nil, errors.New("x509: invalid RDNSequence") return nil, errors.New("x509: invalid RDNSequence")
} }
@ -883,7 +882,7 @@ func parseCertificate(der []byte) (*Certificate, error) {
return nil, errors.New("x509: malformed issuer") return nil, errors.New("x509: malformed issuer")
} }
cert.RawIssuer = issuerSeq cert.RawIssuer = issuerSeq
issuerRDNs, err := parseName(issuerSeq) issuerRDNs, err := ParseName(issuerSeq)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -903,7 +902,7 @@ func parseCertificate(der []byte) (*Certificate, error) {
return nil, errors.New("x509: malformed issuer") return nil, errors.New("x509: malformed issuer")
} }
cert.RawSubject = subjectSeq cert.RawSubject = subjectSeq
subjectRDNs, err := parseName(subjectSeq) subjectRDNs, err := ParseName(subjectSeq)
if err != nil { if err != nil {
return nil, err return nil, err
} }