Implement PBKDF2-based key derivation, random key generation,
and AES-CBC encryption/decryption using CryptoAPI.
Contributed by Ryan Sleevi <[email protected]>.
Original review URL: http://codereview.chromium.org/1558018
R=wtc,albertb
BUG=none
TEST=SymmetricKeyTest.* and EncryptorTest.*
Review URL: http://codereview.chromium.org/1528021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44106 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/crypto/rsa_private_key.h b/base/crypto/rsa_private_key.h
index ae410e0..9c8bfd44 100644
--- a/base/crypto/rsa_private_key.h
+++ b/base/crypto/rsa_private_key.h
@@ -13,9 +13,6 @@
struct SECKEYPublicKeyStr;
#elif defined(OS_MACOSX)
#include <Security/cssm.h>
-#elif defined(OS_WIN)
-#include <windows.h>
-#include <wincrypt.h>
#endif
#include <list>
@@ -23,6 +20,10 @@
#include "base/basictypes.h"
+#if defined(OS_WIN)
+#include "base/crypto/scoped_capi_types.h"
+#endif
+
namespace base {
// Used internally by RSAPrivateKey for serializing and deserializing
@@ -194,8 +195,8 @@
#elif defined(OS_WIN)
bool InitProvider();
- HCRYPTPROV provider_;
- HCRYPTKEY key_;
+ ScopedHCRYPTPROV provider_;
+ ScopedHCRYPTKEY key_;
#elif defined(OS_MACOSX)
CSSM_KEY key_;
#endif