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

Unified Diff: crypto/rsa_private_key.h

Issue 17265013: Remove platform-specific implementations of RSAPrivateKey and SignatureCreator (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix colliding serial numbers Created 7 years, 6 months 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/crypto.gyp ('k') | crypto/rsa_private_key_ios.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 b8ce1690f1689c14838845623aa22aba4b7116ea..ad82148428a564519262c98fb503f1969eee1fdb 100644
--- a/crypto/rsa_private_key.h
+++ b/crypto/rsa_private_key.h
@@ -7,32 +7,26 @@
#include "build/build_config.h"
-#if defined(USE_OPENSSL)
-// Forward declaration for openssl/*.h
-typedef struct evp_pkey_st EVP_PKEY;
-#elif defined(USE_NSS)
-// Forward declaration.
-typedef struct SECKEYPrivateKeyStr SECKEYPrivateKey;
-typedef struct SECKEYPublicKeyStr SECKEYPublicKey;
-#elif defined(OS_IOS)
-#include <Security/Security.h>
-#elif defined(OS_MACOSX)
-#include <Security/cssm.h>
-#endif
-
#include <list>
#include <vector>
#include "base/basictypes.h"
#include "crypto/crypto_export.h"
-#if defined(OS_WIN)
-#include "crypto/scoped_capi_types.h"
-#endif
#if defined(USE_NSS)
#include "base/gtest_prod_util.h"
#endif
+#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)
+// Forward declaration.
+typedef struct SECKEYPrivateKeyStr SECKEYPrivateKey;
+typedef struct SECKEYPublicKeyStr SECKEYPublicKey;
+#endif
+
+
namespace crypto {
// Used internally by RSAPrivateKey for serializing and deserializing
@@ -179,32 +173,27 @@ class CRYPTO_EXPORT RSAPrivateKey {
// Create a new random instance. Can return NULL if initialization fails.
static RSAPrivateKey* Create(uint16 num_bits);
- // Create a new random instance. Can return NULL if initialization fails.
- // The created key is permanent and is not exportable in plaintext form.
- //
- // NOTE: Currently only available if USE_NSS is defined.
- 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.
static RSAPrivateKey* CreateFromPrivateKeyInfo(
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.
// The created key is permanent and is not exportable in plaintext form.
- //
- // NOTE: Currently only available if USE_NSS is defined.
static RSAPrivateKey* CreateSensitiveFromPrivateKeyInfo(
const std::vector<uint8>& input);
-#if defined(USE_NSS)
// Create a new instance by referencing an existing private key
// structure. Does not import the key.
static RSAPrivateKey* CreateFromKey(SECKEYPrivateKey* key);
-#endif
// Import an existing public key, and then search for the private
// half in the key database. The format of the public key blob is is
@@ -212,25 +201,15 @@ class CRYPTO_EXPORT RSAPrivateKey {
// initialization fails or the private key cannot be found. The
// caller takes ownership of the returned object, but nothing new is
// created in the key database.
- //
- // NOTE: Currently only available if USE_NSS is defined.
static RSAPrivateKey* FindFromPublicKeyInfo(
const std::vector<uint8>& input);
+#endif
#if defined(USE_OPENSSL)
EVP_PKEY* key() { return key_; }
-#elif defined(USE_NSS)
+#elif defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX)
SECKEYPrivateKey* key() { return key_; }
SECKEYPublicKey* public_key() { return public_key_; }
-#elif defined(OS_WIN)
- HCRYPTPROV provider() { return provider_; }
- HCRYPTKEY key() { return key_; }
-#elif defined(OS_IOS)
- SecKeyRef key() { return key_; }
- SecKeyRef public_key() { return public_key_; }
-#elif defined(OS_MACOSX)
- CSSM_KEY_PTR key() { return &key_; }
- CSSM_KEY_PTR public_key() { return &public_key_; }
#endif
// Creates a copy of the object.
@@ -255,31 +234,24 @@ class CRYPTO_EXPORT RSAPrivateKey {
// 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,
bool permanent,
bool sensitive);
// Shared helper for CreateFromPrivateKeyInfo() and
// CreateSensitiveFromPrivateKeyInfo().
+ // Note: |permanent| is only supported when USE_NSS is defined.
static RSAPrivateKey* CreateFromPrivateKeyInfoWithParams(
- const std::vector<uint8>& input, bool permanent, bool sensitive);
+ const std::vector<uint8>& input,
+ bool permanent,
+ bool sensitive);
#if defined(USE_OPENSSL)
EVP_PKEY* key_;
-#elif defined(USE_NSS)
+#elif defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX)
SECKEYPrivateKey* key_;
SECKEYPublicKey* public_key_;
-#elif defined(OS_WIN)
- bool InitProvider();
-
- ScopedHCRYPTPROV provider_;
- ScopedHCRYPTKEY key_;
-#elif defined(OS_IOS)
- SecKeyRef key_;
- SecKeyRef public_key_;
-#elif defined(OS_MACOSX)
- CSSM_KEY key_;
- CSSM_KEY public_key_;
#endif
DISALLOW_COPY_AND_ASSIGN(RSAPrivateKey);
« no previous file with comments | « crypto/crypto.gyp ('k') | crypto/rsa_private_key_ios.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698