X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fcrypter.cpp;h=2a6f36d1dbf2b539d9dcb30f63ef06de35c83f89;hb=5af8418fee23af1be2065382dda14a97034fdf56;hp=3a7f997acce0f1ed61217f54bf1f6b5adca41280;hpb=5f487b1f0242499f67a4adf48d888ebf4731b7ed;p=novacoin.git diff --git a/src/crypter.cpp b/src/crypter.cpp index 3a7f997..2a6f36d 100644 --- a/src/crypter.cpp +++ b/src/crypter.cpp @@ -6,13 +6,13 @@ #include #include #include + +#include "crypter.h" + #ifdef WIN32 #include #endif -#include "crypter.h" -#include "scrypt.h" - bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::vector& chSalt, const unsigned int nRounds, const unsigned int nDerivationMethod) { if (nRounds < 1 || chSalt.size() != WALLET_CRYPTO_SALT_SIZE) @@ -25,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); @@ -75,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;