[email protected] | cf21188 | 2012-07-11 07:19:14 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
[email protected] | 4b559b4d | 2011-04-14 17:37:14 | [diff] [blame] | 5 | #ifndef CRYPTO_NSS_UTIL_INTERNAL_H_ |
6 | #define CRYPTO_NSS_UTIL_INTERNAL_H_ | ||||
[email protected] | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 7 | |
8 | #include <secmodt.h> | ||||
9 | |||||
[email protected] | d613a990 | 2011-08-05 20:59:11 | [diff] [blame] | 10 | #include "crypto/crypto_export.h" |
[email protected] | e4c9dda | 2011-06-20 23:24:09 | [diff] [blame] | 11 | |
[email protected] | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 12 | // These functions return a type defined in an NSS header, and so cannot be |
13 | // declared in nss_util.h. Hence, they are declared here. | ||||
14 | |||||
[email protected] | 4b559b4d | 2011-04-14 17:37:14 | [diff] [blame] | 15 | namespace crypto { |
[email protected] | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 16 | |
[email protected] | 6a89ef2 | 2011-04-07 17:34:21 | [diff] [blame] | 17 | // Returns a reference to the default NSS key slot for storing |
18 | // public-key data only (e.g. server certs). Caller must release | ||||
19 | // returned reference with PK11_FreeSlot. | ||||
[email protected] | d613a990 | 2011-08-05 20:59:11 | [diff] [blame] | 20 | CRYPTO_EXPORT PK11SlotInfo* GetPublicNSSKeySlot(); |
[email protected] | 6a89ef2 | 2011-04-07 17:34:21 | [diff] [blame] | 21 | |
22 | // Returns a reference to the default slot for storing private-key and | ||||
23 | // mixed private-key/public-key data. Returns a hardware (TPM) NSS | ||||
24 | // key slot if on ChromeOS and EnableTPMForNSS() has been called | ||||
25 | // successfully. Caller must release returned reference with | ||||
26 | // PK11_FreeSlot. | ||||
[email protected] | d613a990 | 2011-08-05 20:59:11 | [diff] [blame] | 27 | CRYPTO_EXPORT PK11SlotInfo* GetPrivateNSSKeySlot(); |
[email protected] | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 28 | |
[email protected] | dd24ffc | 2011-06-08 19:46:42 | [diff] [blame] | 29 | // A helper class that acquires the SECMOD list read lock while the |
30 | // AutoSECMODListReadLock is in scope. | ||||
31 | class AutoSECMODListReadLock { | ||||
32 | public: | ||||
33 | AutoSECMODListReadLock(); | ||||
34 | ~AutoSECMODListReadLock(); | ||||
35 | |||||
36 | private: | ||||
37 | SECMODListLock* lock_; | ||||
38 | DISALLOW_COPY_AND_ASSIGN(AutoSECMODListReadLock); | ||||
39 | }; | ||||
40 | |||||
[email protected] | 4b559b4d | 2011-04-14 17:37:14 | [diff] [blame] | 41 | } // namespace crypto |
[email protected] | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 42 | |
[email protected] | 4b559b4d | 2011-04-14 17:37:14 | [diff] [blame] | 43 | #endif // CRYPTO_NSS_UTIL_INTERNAL_H_ |