X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fcrypter.cpp;h=2a6f36d1dbf2b539d9dcb30f63ef06de35c83f89;hb=5f3f7465db4444e49dd4a896f88c090b40d0a303;hp=e808d064f9fa9d8b8eba781b6a554ee68906fb1a;hpb=5fddc4755daf043e8e927fd97bf2c80ad9d819e5;p=novacoin.git diff --git a/src/crypter.cpp b/src/crypter.cpp index e808d06..2a6f36d 100644 --- a/src/crypter.cpp +++ b/src/crypter.cpp @@ -8,7 +8,6 @@ #include #include "crypter.h" -#include "scrypt.h" #ifdef WIN32 #include @@ -26,17 +25,6 @@ bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::v (unsigned char *)&strKeyData[0], strKeyData.size(), nRounds, chKey, chIV); } - if (nDerivationMethod == 1) - { - // Passphrase conversion - uint256 scryptHash = scrypt_salted_multiround_hash((const void*)strKeyData.c_str(), strKeyData.size(), &chSalt[0], 8, nRounds); - - i = EVP_BytesToKey(EVP_aes_256_cbc(), EVP_sha512(), &chSalt[0], - (unsigned char *)&scryptHash, sizeof scryptHash, nRounds, chKey, chIV); - OPENSSL_cleanse(&scryptHash, sizeof scryptHash); - } - - if (i != (int)WALLET_CRYPTO_KEY_SIZE) { OPENSSL_cleanse(&chKey, sizeof chKey); @@ -76,9 +64,9 @@ bool CCrypter::Encrypt(const CKeyingMaterial& vchPlaintext, std::vector& vchCiphertext, CKeyingM bool fOk = true; EVP_CIPHER_CTX_init(&ctx); - if (fOk) fOk = EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV); - if (fOk) fOk = EVP_DecryptUpdate(&ctx, &vchPlaintext[0], &nPLen, &vchCiphertext[0], nLen); - if (fOk) fOk = EVP_DecryptFinal_ex(&ctx, (&vchPlaintext[0])+nPLen, &nFLen); + if (fOk) fOk = EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0; + if (fOk) fOk = EVP_DecryptUpdate(&ctx, &vchPlaintext[0], &nPLen, &vchCiphertext[0], nLen) != 0; + if (fOk) fOk = EVP_DecryptFinal_ex(&ctx, (&vchPlaintext[0]) + nPLen, &nFLen) != 0; EVP_CIPHER_CTX_cleanup(&ctx); if (!fOk) return false;