Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Unified Diff: crypto/rsa_private_key.h

Issue 66213002: NSS: {EC,RSA}PrivateKey shouldn't call crypto::GetPublicNSSKeySlot or GetPrivateNSSKeySlot. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove the checks again Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « crypto/ec_private_key_openssl.cc ('k') | crypto/rsa_private_key_nss.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: crypto/rsa_private_key.h
diff --git a/crypto/rsa_private_key.h b/crypto/rsa_private_key.h
index ad82148428a564519262c98fb503f1969eee1fdb..4453845773454396985f74c410a599eaf024a268 100644
--- a/crypto/rsa_private_key.h
+++ b/crypto/rsa_private_key.h
@@ -20,8 +20,9 @@
#if defined(USE_OPENSSL)
// Forward declaration for openssl/*.h
typedef struct evp_pkey_st EVP_PKEY;
-#elif defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX)
+#else
// Forward declaration.
+typedef struct PK11SlotInfoStr PK11SlotInfo;
typedef struct SECKEYPrivateKeyStr SECKEYPrivateKey;
typedef struct SECKEYPublicKeyStr SECKEYPublicKey;
#endif
@@ -180,15 +181,17 @@ class CRYPTO_EXPORT RSAPrivateKey {
const std::vector<uint8>& input);
#if defined(USE_NSS)
- // Create a new random instance. Can return NULL if initialization fails.
- // The created key is permanent and is not exportable in plaintext form.
- static RSAPrivateKey* CreateSensitive(uint16 num_bits);
-
- // Create a new instance by importing an existing private key. The format is
- // an ASN.1-encoded PrivateKeyInfo block from PKCS #8. This can return NULL if
- // initialization fails.
+ // Create a new random instance in |slot|. Can return NULL if initialization
+ // fails. The created key is permanent and is not exportable in plaintext
+ // form.
+ static RSAPrivateKey* CreateSensitive(PK11SlotInfo* slot, uint16 num_bits);
+
+ // Create a new instance in |slot| by importing an existing private key. The
+ // format is an ASN.1-encoded PrivateKeyInfo block from PKCS #8. This can
+ // return NULL if initialization fails.
// The created key is permanent and is not exportable in plaintext form.
static RSAPrivateKey* CreateSensitiveFromPrivateKeyInfo(
+ PK11SlotInfo* slot,
const std::vector<uint8>& input);
// Create a new instance by referencing an existing private key
@@ -207,7 +210,7 @@ class CRYPTO_EXPORT RSAPrivateKey {
#if defined(USE_OPENSSL)
EVP_PKEY* key() { return key_; }
-#elif defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX)
+#else
SECKEYPrivateKey* key() { return key_; }
SECKEYPublicKey* public_key() { return public_key_; }
#endif
@@ -231,11 +234,13 @@ class CRYPTO_EXPORT RSAPrivateKey {
// methods above instead.
RSAPrivateKey();
+#if !defined(USE_OPENSSL)
// Shared helper for Create() and CreateSensitive().
// TODO(cmasone): consider replacing |permanent| and |sensitive| with a
// flags arg created by ORing together some enumerated values.
// Note: |permanent| is only supported when USE_NSS is defined.
- static RSAPrivateKey* CreateWithParams(uint16 num_bits,
+ static RSAPrivateKey* CreateWithParams(PK11SlotInfo* slot,
+ uint16 num_bits,
bool permanent,
bool sensitive);
@@ -243,13 +248,15 @@ class CRYPTO_EXPORT RSAPrivateKey {
// CreateSensitiveFromPrivateKeyInfo().
// Note: |permanent| is only supported when USE_NSS is defined.
static RSAPrivateKey* CreateFromPrivateKeyInfoWithParams(
+ PK11SlotInfo* slot,
const std::vector<uint8>& input,
bool permanent,
bool sensitive);
+#endif
#if defined(USE_OPENSSL)
EVP_PKEY* key_;
-#elif defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX)
+#else
SECKEYPrivateKey* key_;
SECKEYPublicKey* public_key_;
#endif
« no previous file with comments | « crypto/ec_private_key_openssl.cc ('k') | crypto/rsa_private_key_nss.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698