0
Ich verwende CentOS 7 und OpenSSL v1.1.0.Create EVP_CIPHER_CTX Array
Da OpenSSL ihre API geändert hat, habe ich den folgenden Fehler: invalid use of incomplete type struct evp_cipher_ctx_st
.
static void InitAESKey(AES_KEY_CTX* ctx, BYTE* keybytes, int numkeys)
{
BYTE* pBufIdx = keybytes;
for (int i = 0; i < numkeys; i++)
{
OTEXT_AES_KEY_INIT(ctx + i, pBufIdx);
pBufIdx += AES_KEY_BYTES;
}
}
Während AES_KEY_CTX
und OTEXT_AES_KEY_INIT
sind Makros definiert:
#define AES_KEY_CTX EVP_CIPHER_CTX
#define OTEXT_AES_KEY_INIT(ctx, buf) { \
EVP_CIPHER_CTX_init(ctx); \
EVP_EncryptInit_ex(ctx, EVP_aes_128_ecb(), NULL, buf, ZERO_IV); \
}
Ich habe versucht, das Makro #define AES_KEY_CTX EVP_CIPHER_CTX*
zu ändern, aber der Fehler noch vorhanden.
Verwenden [EVP Symmetrische Verschlüsselung und Entschlüsselung] (http://wiki.openssl.org/index .php/EVP_Symmetric_Encryption_and_Decryption). Bei Verwendung der EVP-Schnittstelle werden der Schlüssel und die IV im Aufruf von 'EVP_EncryptInit_ex' gesetzt. – jww
@jww das, was ich benutze. Das Problem ist diese Operation 'ctx + i' – liorko