Chromium Code Reviews| Index: chrome/browser/chromeos/certificate_provider/certificate_provider_service_factory.cc |
| diff --git a/chrome/browser/chromeos/certificate_provider/certificate_provider_service_factory.cc b/chrome/browser/chromeos/certificate_provider/certificate_provider_service_factory.cc |
| index eec8b3bf2483b30e2f303a1158e9857ef021862d..a8b6095b9add9e68b7294763644e846023a75e40 100644 |
| --- a/chrome/browser/chromeos/certificate_provider/certificate_provider_service_factory.cc |
| +++ b/chrome/browser/chromeos/certificate_provider/certificate_provider_service_factory.cc |
| @@ -14,6 +14,7 @@ |
| #include "base/memory/ptr_util.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/memory/singleton.h" |
| +#include "base/rand_util.h" |
| #include "base/values.h" |
| #include "chrome/browser/chromeos/certificate_provider/certificate_provider_service.h" |
| #include "chrome/browser/profiles/incognito_helpers.h" |
| @@ -112,6 +113,13 @@ bool DefaultDelegate::DispatchSignRequestToExtension( |
| return false; |
| api_cp::SignRequest request; |
| + uint64_t sign_request_id = base::RandUint64(); |
| + // If we hit the improbable case when generated ID exists already, we |
| + // generate another ID. |
| + while (!service_->AddSignRequestId(sign_request_id)) { |
| + sign_request_id = base::RandUint64(); |
| + } |
|
stevenjb
2016/08/09 21:04:39
Why use random numbers here instead of an increasi
igorcov1
2016/08/10 18:05:03
Security reasons. If an extension would know what'
|
| + request.sign_request_id = sign_request_id; |
| switch (hash) { |
| case net::SSLPrivateKey::Hash::MD5_SHA1: |
| request.hash = api_cp::HASH_MD5_SHA1; |