message: crypter: hook up the new aes cbc classes
diff: #include "crypter.h"
  +#include "crypto/aes.h"
  #include "script/script.h"
  #include "script/standard.h"
  #include "util.h"
  @@ -54,24 +55,15 @@ bool CCrypter::Encrypt(const CKeyingMaterial& vchPlaintext, std::vector<unsigned
  return false;
  // max ciphertext len for a n bytes of plaintext is
  - // n + AES_BLOCK_SIZE - 1 bytes
  - int nLen = vchPlaintext.size();
  - int nCLen = nLen + AES_BLOCK_SIZE, nFLen = 0;
  - vchCiphertext = std::vector<unsigned char> (nCLen);
  + // n + AES_BLOCKSIZE bytes
  + vchCiphertext.resize(vchPlaintext.size() + AES_BLOCKSIZE);
  - EVP_CIPHER_CTX ctx;
  -
  - bool fOk = true;
  -
  - EVP_CIPHER_CTX_init(&ctx);
  - if (fOk) fOk = EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0;
  - if (fOk) fOk = EVP_EncryptUpdate(&ctx, &vchCiphertext[0], &nCLen, &vchPlaintext[0], nLen) != 0;
  - if (fOk) fOk = EVP_EncryptFinal_ex(&ctx, (&vchCiphertext[0]) + nCLen, &nFLen) != 0;
  - EVP_CIPHER_CTX_cleanup(&ctx);
  -
  - if (!fOk) return false;
  + AES256CBCEncrypt enc(chKey, chIV, true);
  + size_t nLen = enc.Encrypt(&vchPlaintext[0], vchPlaintext.size(), &vchCiphertext[0]);
  + if(nLen < vchPlaintext.size())
  + return false;
  + vchCiphertext.resize(nLen);
  - vchCiphertext.resize(nCLen + nFLen);
  return true;
  }
  @@ -82,23 +74,14 @@ bool CCrypter::Decrypt(const std::vector<unsigned char>& vchCiphertext, CKeyingM
  // plaintext will always be equal to or lesser than length of ciphertext
  int nLen = vchCiphertext.size();
  - int nPLen = nLen, nFLen = 0;
  -
  - vchPlaintext = CKeyingMaterial(nPLen);
  - EVP_CIPHER_CTX ctx;
  + vchPlaintext.resize(nLen);
  - bool fOk = true;
  -
  - EVP_CIPHER_CTX_init(&ctx);
  - 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;
  -
  - vchPlaintext.resize(nPLen + nFLen);
  + AES256CBCDecrypt dec(chKey, chIV, true);
  + nLen = dec.Decrypt(&vchCiphertext[0], vchCiphertext.size(), &vchPlaintext[0]);
  + if(nLen == 0)
  + return false;
  + vchPlaintext.resize(nLen);
  return true;
  }
  