SecBSD's official ports repository

This commit is contained in:
purplerain 2023-08-16 22:26:55 +00:00
commit 2c0afcbbf3
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
64331 changed files with 5339189 additions and 0 deletions

View file

@ -0,0 +1,66 @@
Index: Crypto/src/CipherImpl.cpp
--- Crypto/src/CipherImpl.cpp.orig
+++ Crypto/src/CipherImpl.cpp
@@ -97,7 +97,7 @@ namespace
private:
const EVP_CIPHER* _pCipher;
- EVP_CIPHER_CTX _ctx;
+ EVP_CIPHER_CTX* _ctx;
ByteVec _key;
ByteVec _iv;
};
@@ -112,8 +112,11 @@ namespace
_key(key),
_iv(iv)
{
+ _ctx = EVP_CIPHER_CTX_new();
+ if (_ctx == NULL)
+ throwError();
EVP_CipherInit(
- &_ctx,
+ _ctx,
_pCipher,
&_key[0],
_iv.empty() ? 0 : &_iv[0],
@@ -123,19 +126,19 @@ namespace
CryptoTransformImpl::~CryptoTransformImpl()
{
- EVP_CIPHER_CTX_cleanup(&_ctx);
+ EVP_CIPHER_CTX_free(_ctx);
}
std::size_t CryptoTransformImpl::blockSize() const
{
- return EVP_CIPHER_CTX_block_size(&_ctx);
+ return EVP_CIPHER_CTX_block_size(_ctx);
}
int CryptoTransformImpl::setPadding(int padding)
{
- return EVP_CIPHER_CTX_set_padding(&_ctx, padding);
+ return EVP_CIPHER_CTX_set_padding(_ctx, padding);
}
@@ -149,7 +152,7 @@ namespace
int outLen = static_cast<int>(outputLength);
int rc = EVP_CipherUpdate(
- &_ctx,
+ _ctx,
output,
&outLen,
input,
@@ -173,7 +176,7 @@ namespace
// Use the '_ex' version that does not perform implicit cleanup since we
// will call EVP_CIPHER_CTX_cleanup() from the dtor as there is no
// guarantee that finalize() will be called if an error occurred.
- int rc = EVP_CipherFinal_ex(&_ctx, output, &len);
+ int rc = EVP_CipherFinal_ex(_ctx, output, &len);
if (rc == 0)
throwError();