ajwong@chromium.org | cf21188 | 2012-07-11 07:19:14 | [diff] [blame^] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
cmasone@google.com | 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 | |
rvargas@google.com | 4b559b4d | 2011-04-14 17:37:14 | [diff] [blame] | 5 | #ifndef CRYPTO_NSS_UTIL_INTERNAL_H_ |
| 6 | #define CRYPTO_NSS_UTIL_INTERNAL_H_ |
cmasone@google.com | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 7 | |
| 8 | #include <secmodt.h> |
| 9 | |
darin@chromium.org | d613a990 | 2011-08-05 20:59:11 | [diff] [blame] | 10 | #include "crypto/crypto_export.h" |
rvargas@google.com | e4c9dda | 2011-06-20 23:24:09 | [diff] [blame] | 11 | |
cmasone@google.com | 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 | |
rvargas@google.com | 4b559b4d | 2011-04-14 17:37:14 | [diff] [blame] | 15 | namespace crypto { |
cmasone@google.com | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 16 | |
gspencer@chromium.org | 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. |
darin@chromium.org | d613a990 | 2011-08-05 20:59:11 | [diff] [blame] | 20 | CRYPTO_EXPORT PK11SlotInfo* GetPublicNSSKeySlot(); |
gspencer@chromium.org | 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. |
darin@chromium.org | d613a990 | 2011-08-05 20:59:11 | [diff] [blame] | 27 | CRYPTO_EXPORT PK11SlotInfo* GetPrivateNSSKeySlot(); |
cmasone@google.com | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 28 | |
gspencer@google.com | 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 | |
rvargas@google.com | 4b559b4d | 2011-04-14 17:37:14 | [diff] [blame] | 41 | } // namespace crypto |
cmasone@google.com | dcce6cf | 2010-04-29 17:50:06 | [diff] [blame] | 42 | |
rvargas@google.com | 4b559b4d | 2011-04-14 17:37:14 | [diff] [blame] | 43 | #endif // CRYPTO_NSS_UTIL_INTERNAL_H_ |