| Index: net/base/keygen_handler.h
|
| diff --git a/net/base/keygen_handler.h b/net/base/keygen_handler.h
|
| index 5ca6027ba2c3164f3a0ba1b86f522c507876a58c..d12d0847afa0c915b132044b67c608759a6a85e3 100644
|
| --- a/net/base/keygen_handler.h
|
| +++ b/net/base/keygen_handler.h
|
| @@ -8,8 +8,16 @@
|
|
|
| #include <string>
|
|
|
| +#include "base/scoped_ptr.h"
|
| +#include "build/build_config.h"
|
| #include "googleurl/src/gurl.h"
|
|
|
| +#if defined(USE_NSS)
|
| +namespace base {
|
| +class PK11BlockingPasswordDelegate;
|
| +};
|
| +#endif // defined(USE_NSS)
|
| +
|
| namespace net {
|
|
|
| // This class handles keypair generation for generating client
|
| @@ -22,9 +30,10 @@ class KeygenHandler {
|
| // Creates a handler that will generate a key with the given key size and
|
| // incorporate the |challenge| into the Netscape SPKAC structure. The request
|
| // for the key originated from |url|.
|
| - inline KeygenHandler(int key_size_in_bits,
|
| - const std::string& challenge,
|
| - const GURL& url);
|
| + KeygenHandler(int key_size_in_bits,
|
| + const std::string& challenge,
|
| + const GURL& url);
|
| + ~KeygenHandler();
|
|
|
| // Actually generates the key-pair and the cert request (SPKAC), and returns
|
| // a base64-encoded string suitable for use as the form value of <keygen>.
|
| @@ -33,22 +42,25 @@ class KeygenHandler {
|
| // Exposed only for unit tests.
|
| void set_stores_key(bool store) { stores_key_ = store;}
|
|
|
| +#if defined(USE_NSS)
|
| + // Register the password delegate to be used if the token is unauthenticated.
|
| + // GenKeyAndSignChallenge runs on a worker thread, so using the blocking
|
| + // password callback is okay here.
|
| + // Takes ownership of the delegate.
|
| + void set_pk11_password_delegate(base::PK11BlockingPasswordDelegate* delegate);
|
| +#endif // defined(USE_NSS)
|
| +
|
| private:
|
| int key_size_in_bits_; // key size in bits (usually 2048)
|
| std::string challenge_; // challenge string sent by server
|
| GURL url_; // the URL that requested the key
|
| bool stores_key_; // should the generated key-pair be stored persistently?
|
| +#if defined(USE_NSS)
|
| + // The callback for requesting a password to the PKCS#11 token.
|
| + scoped_ptr<base::PK11BlockingPasswordDelegate> pk11_password_delegate_;
|
| +#endif // defined(USE_NSS)
|
| };
|
|
|
| -KeygenHandler::KeygenHandler(int key_size_in_bits,
|
| - const std::string& challenge,
|
| - const GURL& url)
|
| - : key_size_in_bits_(key_size_in_bits),
|
| - challenge_(challenge),
|
| - url_(url),
|
| - stores_key_(true) {
|
| -}
|
| -
|
| } // namespace net
|
|
|
| #endif // NET_BASE_KEYGEN_HANDLER_H_
|
|
|