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

Unified Diff: net/base/server_bound_cert_store.h

Issue 11742037: Make ServerBoundCertStore interface async, move SQLiteServerBoundCertStore load onto DB thread. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix login_utils_browsertest Created 7 years, 11 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
« no previous file with comments | « net/base/server_bound_cert_service.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/server_bound_cert_store.h
diff --git a/net/base/server_bound_cert_store.h b/net/base/server_bound_cert_store.h
index 7a6f86638d6870633838e1932ffe8a71782a1d0b..85e103504f1c24386d85d1ac7711e2dc73d56cb5 100644
--- a/net/base/server_bound_cert_store.h
+++ b/net/base/server_bound_cert_store.h
@@ -8,6 +8,7 @@
#include <list>
#include <string>
+#include "base/callback.h"
#include "base/threading/non_thread_safe.h"
#include "base/time.h"
#include "net/base/net_export.h"
@@ -65,23 +66,29 @@ class NET_EXPORT ServerBoundCertStore
typedef std::list<ServerBoundCert> ServerBoundCertList;
+ typedef base::Callback<void(
+ const std::string&,
+ SSLClientCertType,
+ base::Time,
+ const std::string&,
+ const std::string&)> GetCertCallback;
+ typedef base::Callback<void(const ServerBoundCertList&)> GetCertListCallback;
+
virtual ~ServerBoundCertStore() {}
- // TODO(rkn): File I/O may be required, so this should have an asynchronous
- // interface.
- // Returns true on success. |private_key_result| stores a DER-encoded
- // PrivateKeyInfo struct, |cert_result| stores a DER-encoded certificate,
- // |type| is the ClientCertificateType of the returned certificate,
- // |creation_time| stores the start of the validity period of the certificate
- // and |expiration_time| is the expiration time of the certificate.
- // Returns false if no server bound cert exists for the specified server.
+ // GetServerBoundCert may return the result synchronously through the
+ // output parameters, in which case it will return true. Otherwise it will
+ // return false and the callback will be called with the result
+ // asynchronously.
+ // In either case, the type will be CLIENT_CERT_INVALID_TYPE if no cert
+ // existed for the given |server_identifier|.
virtual bool GetServerBoundCert(
const std::string& server_identifier,
SSLClientCertType* type,
- base::Time* creation_time,
base::Time* expiration_time,
std::string* private_key_result,
- std::string* cert_result) = 0;
+ std::string* cert_result,
+ const GetCertCallback& callback) = 0;
// Adds a server bound cert and the corresponding private key to the store.
virtual void SetServerBoundCert(
@@ -94,26 +101,30 @@ class NET_EXPORT ServerBoundCertStore
// Removes a server bound cert and the corresponding private key from the
// store.
- virtual void DeleteServerBoundCert(const std::string& server_identifier) = 0;
+ virtual void DeleteServerBoundCert(
+ const std::string& server_identifier,
+ const base::Closure& completion_callback) = 0;
// Deletes all of the server bound certs that have a creation_date greater
// than or equal to |delete_begin| and less than |delete_end|. If a
// base::Time value is_null, that side of the comparison is unbounded.
- virtual void DeleteAllCreatedBetween(base::Time delete_begin,
- base::Time delete_end) = 0;
+ virtual void DeleteAllCreatedBetween(
+ base::Time delete_begin,
+ base::Time delete_end,
+ const base::Closure& completion_callback) = 0;
// Removes all server bound certs and the corresponding private keys from
// the store.
- virtual void DeleteAll() = 0;
+ virtual void DeleteAll(const base::Closure& completion_callback) = 0;
// Returns all server bound certs and the corresponding private keys.
- virtual void GetAllServerBoundCerts(
- ServerBoundCertList* server_bound_certs) = 0;
+ virtual void GetAllServerBoundCerts(const GetCertListCallback& callback) = 0;
// Helper function that adds all certs from |list| into this instance.
void InitializeFrom(const ServerBoundCertList& list);
- // Returns the number of certs in the store.
+ // Returns the number of certs in the store. May return 0 if the backing
+ // store is not loaded yet.
// Public only for unit testing.
virtual int GetCertCount() = 0;
« no previous file with comments | « net/base/server_bound_cert_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698