Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(332)

Unified Diff: net/cert/proto/cert_verification.proto

Issue 1892033002: Cert - protobufs to serialize and deserialize CertVerifierCache. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/cert/proto/cert_verification.proto
diff --git a/net/cert/proto/cert_verification.proto b/net/cert/proto/cert_verification.proto
new file mode 100644
index 0000000000000000000000000000000000000000..ab56d00b9c654e22cb853ea0ad58b7c4fd3a9705
--- /dev/null
+++ b/net/cert/proto/cert_verification.proto
@@ -0,0 +1,85 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package net;
+
+message CertVerificationSHA1HashValue {
Ryan Sleevi 2016/04/16 00:36:15 SHA256
ramant (doing other things) 2016/04/21 16:41:54 Done.
+ optional bytes data = 1;
+};
+
+message CertVerificationRequestParams {
+ required string hostname = 1;
+ required int32 flags = 2;
+ repeated CertVerificationSHA1HashValue hash_values = 3;
Ryan Sleevi 2016/04/16 00:36:15 Note: You don't have to store the full SHA-1/SHA-2
ramant (doing other things) 2016/04/21 16:41:54 Made this changes for certificates. RequestParams
+ // The time when verification started.
+ required int64 start_time = 4;
+};
+
+message CertVerificationResult {
+ // The certificate and chain that was constructed during verification.
+ // Note that the though the verified certificate will match the originally
+ // supplied certificate, the intermediate certificates stored within may
+ // be substantially different. In the event of a verification failure, this
Ryan Sleevi 2016/04/16 00:36:15 I'm not sure what you're trying to say about thing
ramant (doing other things) 2016/04/21 16:41:54 Done.
+ // will contain the chain as supplied by the server. This may be NULL if
+ // running within the sandbox.
+ required string verified_cert = 1;
+
+ // Bitmask of CERT_STATUS_* from net/cert/cert_status_flags.h. Note that
+ // these status flags apply to the certificate chain returned in
+ // |verified_cert|, rather than the originally supplied certificate
+ // chain.
+ required uint32 cert_status = 2;
+
+ // Properties of the certificate chain.
+ required bool has_md2 = 3;
+ required bool has_md4 = 4;
+ required bool has_md5 = 5;
+ required bool has_sha1 = 6;
+ required bool has_sha1_leaf = 7;
+
+ // If the certificate was successfully verified then this contains the
+ // hashes, in several hash algorithms, of the SubjectPublicKeyInfos of the
+ // chain.
+ repeated string public_key_hashes = 8;
+ // is_issued_by_known_root is true if we recognise the root CA as a standard
+ // root. If it isn't then it's probably the case that this certificate was
+ // generated by a MITM proxy whose root has been installed locally. This is
+ // meaningless if the certificate was not trusted.
+ required bool is_issued_by_known_root = 9;
+
+ // is_issued_by_additional_trust_anchor is true if the root CA used for this
+ // verification came from the list of additional trust anchors.
+ required bool is_issued_by_additional_trust_anchor = 10;
+
+ // True if a fallback to the common name was used when matching the host
+ // name, rather than using the subjectAltName.
+ required bool common_name_fallback_used = 11;
+};
+
+message CertVerificationCacheValidityPeriod {
+ required int64 verification_time = 1;
+ required int64 expiration_time = 2;
+};
+
+message CertVerificationCachedResult {
+ // The return value of CertVerifier::Verify.
+ required int64 error = 1;
+ // The output of CertVerifier::Verify.
+ required CertVerificationResult result = 2;
+}
+
+message CertVerificationCacheEntry {
+ required CertVerificationRequestParams request_params = 1;
+ required CertVerificationCachedResult cached_result = 2;
+ required CertVerificationCacheValidityPeriod cache_validity_period = 3;
+};
+
+// CertVerification is serialized and persisted to disk.
+message CertVerificationCache {
+ repeated CertVerificationCacheEntry cache_entry = 1;
+};

Powered by Google App Engine
This is Rietveld 408576698