OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 BASE_NSS_SLOT_UTIL_H_ | 5 #ifndef BASE_NSS_SLOT_UTIL_H_ |
6 #define BASE_NSS_SLOT_UTIL_H_ | 6 #define BASE_NSS_SLOT_UTIL_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <secmodt.h> | 9 #include <secmodt.h> |
10 | 10 |
11 // These functions return a type defined in an NSS header, and so cannot be | 11 // These functions return a type defined in an NSS header, and so cannot be |
12 // declared in nss_util.h. Hence, they are declared here. | 12 // declared in nss_util.h. Hence, they are declared here. |
13 | 13 |
14 namespace base { | 14 namespace base { |
15 | 15 |
16 // Returns a reference to the default NSS key slot. Caller must release | 16 // Returns a reference to the default NSS key slot. Caller must release |
17 // reference with PK11_FreeSlot. | 17 // reference with PK11_FreeSlot. |
18 PK11SlotInfo* GetDefaultNSSKeySlot(); | 18 PK11SlotInfo* GetDefaultNSSKeySlot(); |
19 | 19 |
| 20 // PK11_SetPasswordFunc is a global setting. To avoid a dependency on |
| 21 // network code, we instead pass a PK11BlockingPasswordDelegate in the |
| 22 // user data argument and set a global password hook to call it |
| 23 // instead. |
| 24 class PK11BlockingPasswordDelegate { |
| 25 public: |
| 26 virtual ~PK11BlockingPasswordDelegate() {} |
| 27 |
| 28 // Requests a password to unlock |slot|. The interface is |
| 29 // synchronous because NSS cannot issue an asynchronous |
| 30 // request. |retry| is PR_TRUE if this is a request for the retry |
| 31 // and we previously returned the wrong password. |
| 32 // |
| 33 // Result will be zeroed and freed after use. If not NULL, must have |
| 34 // been allocated with PR_Malloc or PL_strdup. |
| 35 virtual char* RequestPassword(PK11SlotInfo* slot, PRBool retry) = 0; |
| 36 }; |
| 37 |
20 } // namespace base | 38 } // namespace base |
21 | 39 |
22 #endif // BASE_NSS_UTIL_H_ | 40 #endif // BASE_NSS_UTIL_H_ |
OLD | NEW |