Created
October 14, 2017 07:27
-
-
Save kngwyu/088d1f77e6cf6bc3694201150c96986d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- a/src/cpp/core/system/Crypto.cpp.orig 2017-10-14 15:59:52.561983799 +0900 | |
+++ b/src/cpp/core/system/Crypto.cpp 2017-10-14 15:58:24.504542511 +0900 | |
@@ -261,27 +261,26 @@ Error aesEncrypt(const std::vector<unsig | |
int outlen = 0; | |
int bytesEncrypted = 0; | |
- EVP_CIPHER_CTX ctx; | |
- EVP_CIPHER_CTX_init(&ctx); | |
- EVP_CipherInit_ex(&ctx, EVP_aes_128_cbc(), NULL, &key[0], &iv[0], kEncrypt); | |
+ EVP_CIPHER_CTX* ctx = EVP_CIPHER_CTX_new(); | |
+ EVP_CipherInit_ex(ctx, EVP_aes_128_cbc(), NULL, &key[0], &iv[0], kEncrypt); | |
// perform the encryption | |
- if(!EVP_CipherUpdate(&ctx, &(pEncrypted->operator[](0)), &outlen, &data[0], data.size())) | |
+ if(!EVP_CipherUpdate(ctx, &(pEncrypted->operator[](0)), &outlen, &data[0], data.size())) | |
{ | |
- EVP_CIPHER_CTX_cleanup(&ctx); | |
+ EVP_CIPHER_CTX_free(ctx); | |
return lastCryptoError(ERROR_LOCATION); | |
} | |
bytesEncrypted += outlen; | |
// perform final flush including left-over padding | |
- if(!EVP_CipherFinal_ex(&ctx, &(pEncrypted->operator[](outlen)), &outlen)) | |
+ if(!EVP_CipherFinal_ex(ctx, &(pEncrypted->operator[](outlen)), &outlen)) | |
{ | |
- EVP_CIPHER_CTX_cleanup(&ctx); | |
+ EVP_CIPHER_CTX_free(ctx); | |
return lastCryptoError(ERROR_LOCATION); | |
} | |
bytesEncrypted += outlen; | |
- EVP_CIPHER_CTX_cleanup(&ctx); | |
+ EVP_CIPHER_CTX_free(ctx); | |
// resize the container to the amount of actual bytes encrypted (including padding) | |
pEncrypted->resize(bytesEncrypted); | |
@@ -298,27 +297,26 @@ Error aesDecrypt(const std::vector<unsig | |
int outlen = 0; | |
int bytesDecrypted = 0; | |
- EVP_CIPHER_CTX ctx; | |
- EVP_CIPHER_CTX_init(&ctx); | |
- EVP_CipherInit_ex(&ctx, EVP_aes_128_cbc(), NULL, &key[0], &iv[0], kDecrypt); | |
+ EVP_CIPHER_CTX* ctx = EVP_CIPHER_CTX_new(); | |
+ EVP_CipherInit_ex(ctx, EVP_aes_128_cbc(), NULL, &key[0], &iv[0], kDecrypt); | |
// perform the decryption | |
- if(!EVP_CipherUpdate(&ctx, &(pDecrypted->operator[](0)), &outlen, &data[0], data.size())) | |
+ if(!EVP_CipherUpdate(ctx, &(pDecrypted->operator[](0)), &outlen, &data[0], data.size())) | |
{ | |
- EVP_CIPHER_CTX_cleanup(&ctx); | |
+ EVP_CIPHER_CTX_free(ctx); | |
return lastCryptoError(ERROR_LOCATION); | |
} | |
bytesDecrypted += outlen; | |
// perform final flush | |
- if(!EVP_CipherFinal_ex(&ctx, &(pDecrypted->operator[](outlen)), &outlen)) | |
+ if(!EVP_CipherFinal_ex(ctx, &(pDecrypted->operator[](outlen)), &outlen)) | |
{ | |
- EVP_CIPHER_CTX_cleanup(&ctx); | |
+ EVP_CIPHER_CTX_free(ctx); | |
return lastCryptoError(ERROR_LOCATION); | |
} | |
bytesDecrypted += outlen; | |
- EVP_CIPHER_CTX_cleanup(&ctx); | |
+ EVP_CIPHER_CTX_free(ctx); | |
// resize the container to the amount of actual bytes decrypted (padding is removed) | |
pDecrypted->resize(bytesDecrypted); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment