Bump version to 0.5.0
[novacoin.git] / src / crypter.cpp
index 6deab04..e808d06 100644 (file)
@@ -6,13 +6,14 @@
 #include <openssl/evp.h>
 #include <vector>
 #include <string>
-#ifdef WIN32
-#include <windows.h>
-#endif
 
 #include "crypter.h"
 #include "scrypt.h"
 
+#ifdef WIN32
+#include <windows.h>
+#endif
+
 bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::vector<unsigned char>& chSalt, const unsigned int nRounds, const unsigned int nDerivationMethod)
 {
     if (nRounds < 1 || chSalt.size() != WALLET_CRYPTO_SALT_SIZE)
@@ -32,14 +33,14 @@ bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::v
 
         i = EVP_BytesToKey(EVP_aes_256_cbc(), EVP_sha512(), &chSalt[0],
                           (unsigned char *)&scryptHash, sizeof scryptHash, nRounds, chKey, chIV);
-        memset(&scryptHash, 0, sizeof scryptHash);
+        OPENSSL_cleanse(&scryptHash, sizeof scryptHash);
     }
 
 
     if (i != (int)WALLET_CRYPTO_KEY_SIZE)
     {
-        memset(&chKey, 0, sizeof chKey);
-        memset(&chIV, 0, sizeof chIV);
+        OPENSSL_cleanse(&chKey, sizeof chKey);
+        OPENSSL_cleanse(&chIV, sizeof chIV);
         return false;
     }