| Index: net/cert/internal/parse_certificate.h
|
| diff --git a/net/cert/internal/parse_certificate.h b/net/cert/internal/parse_certificate.h
|
| index 8ea235cc30ce4b373e58579709efd20023e9b88b..d3c4d975b260f1ae71140f4b2ef560371055f678 100644
|
| --- a/net/cert/internal/parse_certificate.h
|
| +++ b/net/cert/internal/parse_certificate.h
|
| @@ -16,7 +16,6 @@
|
|
|
| namespace net {
|
|
|
| -struct ParsedCertificate;
|
| struct ParsedTbsCertificate;
|
|
|
| // Returns true if the given serial number (CertificateSerialNumber in RFC 5280)
|
| @@ -47,24 +46,44 @@ struct ParsedTbsCertificate;
|
| NET_EXPORT bool VerifySerialNumber(const der::Input& value) WARN_UNUSED_RESULT;
|
|
|
| // Parses a DER-encoded "Certificate" as specified by RFC 5280. Returns true on
|
| -// success and sets the results in |out|.
|
| +// success and sets the results in the |out_*| parameters.
|
| //
|
| -// Note that on success |out| aliases data from the input |certificate_tlv|.
|
| -// Hence the fields of the ParsedCertificate are only valid as long as
|
| +// Note that on success the out parameters alias data from the input
|
| +// |certificate_tlv|. Hence the output values are only valid as long as
|
| // |certificate_tlv| remains valid.
|
| //
|
| -// On failure |out| has an undefined state. Some of its fields may have been
|
| -// updated during parsing, whereas others may not have been changed.
|
| -//
|
| -// Refer to the per-field documention of the ParsedCertificate structure for
|
| -// details on what validity checks parsing performs.
|
| +// On failure the out parameters have an undefined state. Some of them may have
|
| +// been updated during parsing, whereas others may not have been changed.
|
| //
|
| +// The out parameters represent each field of the Certificate SEQUENCE:
|
| // Certificate ::= SEQUENCE {
|
| -// tbsCertificate TBSCertificate,
|
| -// signatureAlgorithm AlgorithmIdentifier,
|
| -// signatureValue BIT STRING }
|
| +//
|
| +// The |out_tbs_certificate_tlv| parameter corresponds with "tbsCertificate"
|
| +// from RFC 5280:
|
| +// tbsCertificate TBSCertificate,
|
| +//
|
| +// This contains the full (unverified) Tag-Length-Value for a SEQUENCE. No
|
| +// guarantees are made regarding the value of this SEQUENCE.
|
| +// This can be further parsed using ParseTbsCertificate().
|
| +//
|
| +// The |out_signature_algorithm_tlv| parameter corresponds with
|
| +// "signatureAlgorithm" from RFC 5280:
|
| +// signatureAlgorithm AlgorithmIdentifier,
|
| +//
|
| +// This contains the full (unverified) Tag-Length-Value for a SEQUENCE. No
|
| +// guarantees are made regarding the value of this SEQUENCE.
|
| +// This can be further parsed using SignatureValue::CreateFromDer().
|
| +//
|
| +// The |out_signature_value| parameter corresponds with "signatureValue" from
|
| +// RFC 5280:
|
| +// signatureValue BIT STRING }
|
| +//
|
| +// Parsing guarantees that this is a valid BIT STRING.
|
| NET_EXPORT bool ParseCertificate(const der::Input& certificate_tlv,
|
| - ParsedCertificate* out) WARN_UNUSED_RESULT;
|
| + der::Input* out_tbs_certificate_tlv,
|
| + der::Input* out_signature_algorithm_tlv,
|
| + der::BitString* out_signature_value)
|
| + WARN_UNUSED_RESULT;
|
|
|
| // Parses a DER-encoded "TBSCertificate" as specified by RFC 5280. Returns true
|
| // on success and sets the results in |out|.
|
| @@ -106,40 +125,6 @@ enum class CertificateVersion {
|
| V3,
|
| };
|
|
|
| -// ParsedCertificate contains pointers to the main fields of a DER-encoded RFC
|
| -// 5280 "Certificate".
|
| -//
|
| -// ParsedCertificate is expected to be filled by ParseCertificate(), so
|
| -// subsequent field descriptions are in terms of what ParseCertificate() sets.
|
| -struct NET_EXPORT ParsedCertificate {
|
| - ParsedCertificate();
|
| - ~ParsedCertificate();
|
| -
|
| - // Corresponds with "tbsCertificate" from RFC 5280:
|
| - // tbsCertificate TBSCertificate,
|
| - //
|
| - // This contains the full (unverified) Tag-Length-Value for a SEQUENCE. No
|
| - // guarantees are made regarding the value of this SEQUENCE.
|
| - //
|
| - // This can be further parsed using ParseTbsCertificate().
|
| - der::Input tbs_certificate_tlv;
|
| -
|
| - // Corresponds with "signatureAlgorithm" from RFC 5280:
|
| - // signatureAlgorithm AlgorithmIdentifier,
|
| - //
|
| - // This contains the full (unverified) Tag-Length-Value for a SEQUENCE. No
|
| - // guarantees are made regarding the value of this SEQUENCE.
|
| - //
|
| - // This can be further parsed using SignatureValue::CreateFromDer().
|
| - der::Input signature_algorithm_tlv;
|
| -
|
| - // Corresponds with "signatureValue" from RFC 5280:
|
| - // signatureValue BIT STRING }
|
| - //
|
| - // Parsing guarantees that this is a valid BIT STRING.
|
| - der::BitString signature_value;
|
| -};
|
| -
|
| // ParsedTbsCertificate contains pointers to the main fields of a DER-encoded
|
| // RFC 5280 "TBSCertificate".
|
| //
|
|
|