OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_H_ |
6 #define CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_H_ | 6 #define CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/callback_forward.h" | 10 #include "base/callback_forward.h" |
11 #include "base/macros.h" | 11 #include "base/macros.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 #include "base/memory/weak_ptr.h" | 13 #include "base/memory/weak_ptr.h" |
| 14 #include "chrome/browser/chromeos/platform_keys/platform_keys.h" |
14 #include "components/keyed_service/core/keyed_service.h" | 15 #include "components/keyed_service/core/keyed_service.h" |
15 | 16 |
16 namespace content { | 17 namespace content { |
17 class BrowserContext; | 18 class BrowserContext; |
18 } | 19 } |
19 | 20 |
20 namespace base { | 21 namespace base { |
21 class ListValue; | 22 class ListValue; |
22 class Value; | 23 class Value; |
23 } | 24 } |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 unsigned int modulus_length_bits, | 60 unsigned int modulus_length_bits, |
60 const std::string& extension_id, | 61 const std::string& extension_id, |
61 const GenerateKeyCallback& callback); | 62 const GenerateKeyCallback& callback); |
62 | 63 |
63 // If signing was successful, |signature| will be contain the signature and | 64 // If signing was successful, |signature| will be contain the signature and |
64 // |error_message| will be empty. If it failed, |signature| will be empty and | 65 // |error_message| will be empty. If it failed, |signature| will be empty and |
65 // |error_message| contain an error message. | 66 // |error_message| contain an error message. |
66 typedef base::Callback<void(const std::string& signature, | 67 typedef base::Callback<void(const std::string& signature, |
67 const std::string& error_message)> SignCallback; | 68 const std::string& error_message)> SignCallback; |
68 | 69 |
69 // Signs |data| with the private key matching |public_key_spki_der|, if that | 70 // Digests |data| with |hash_algorithm| and afterwards signs the digest with |
70 // key is stored in the given token and wasn't used for signing before. | 71 // the private key matching |public_key_spki_der|, if that key is stored in |
| 72 // the given token and wasn't used for signing before. |
71 // Unregisters the key so that every future attempt to sign data with this key | 73 // Unregisters the key so that every future attempt to sign data with this key |
72 // is rejected. |token_id| is currently ignored, instead the user token | 74 // is rejected. |token_id| is currently ignored, instead the user token |
73 // associated with |browser_context| is always used. |public_key_spki_der| | 75 // associated with |browser_context| is always used. |public_key_spki_der| |
74 // must be the DER encoding of a SubjectPublicKeyInfo. |callback| will be | 76 // must be the DER encoding of a SubjectPublicKeyInfo. |callback| will be |
75 // invoked with the signature or an error message. Currently supports RSA keys | 77 // invoked with the signature or an error message. Currently supports RSA keys |
76 // only. | 78 // only. |
77 // Will only call back during the lifetime of this object. | 79 // Will only call back during the lifetime of this object. |
78 void Sign(const std::string& token_id, | 80 void Sign(const std::string& token_id, |
79 const std::string& public_key_spki_der, | 81 const std::string& public_key_spki_der, |
| 82 platform_keys::HashAlgorithm hash_algorithm, |
80 const std::string& data, | 83 const std::string& data, |
81 const std::string& extension_id, | 84 const std::string& extension_id, |
82 const SignCallback& callback); | 85 const SignCallback& callback); |
83 | 86 |
84 private: | 87 private: |
85 typedef base::Callback<void(scoped_ptr<base::ListValue> platform_keys)> | 88 typedef base::Callback<void(scoped_ptr<base::ListValue> platform_keys)> |
86 GetPlatformKeysCallback; | 89 GetPlatformKeysCallback; |
87 | 90 |
88 // Registers the given public key as newly generated key, which is allowed to | 91 // Registers the given public key as newly generated key, which is allowed to |
89 // be used for signing for a single time. Afterwards, calls |callback|. If | 92 // be used for signing for a single time. Afterwards, calls |callback|. If |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 content::BrowserContext* browser_context_; | 147 content::BrowserContext* browser_context_; |
145 extensions::StateStore* state_store_; | 148 extensions::StateStore* state_store_; |
146 base::WeakPtrFactory<PlatformKeysService> weak_factory_; | 149 base::WeakPtrFactory<PlatformKeysService> weak_factory_; |
147 | 150 |
148 DISALLOW_COPY_AND_ASSIGN(PlatformKeysService); | 151 DISALLOW_COPY_AND_ASSIGN(PlatformKeysService); |
149 }; | 152 }; |
150 | 153 |
151 } // namespace chromeos | 154 } // namespace chromeos |
152 | 155 |
153 #endif // CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_H_ | 156 #endif // CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_H_ |
OLD | NEW |