Я в процессе обновления моего пакета Openssl до серии 1.1.0.Однако, поскольку Openssl сделал многие структуры непрозрачными, я не могу обновить iv конкретного ctx.
EVP_CIPHER_CTX *ctx; // This was EVP_CIPHER_CTX ctx; for version 1.0.x series
EVP_DecryptInit(ctx, cipher, keydata, iv);
для конкретного сценария, мне нужно обновить iv.в более ранней версии серии openssl 1.0.x я делал это с
memcpy(nextIv, &ctx.iv, DES3_BLOCK_SIZE);
, но после изменения на
memcpy(nextIv, ctx->iv, DES3_BLOCK_SIZE);
я получаю ошибку компилятора
ошибка: разыменование указателя на неполный тип 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'} memcpy (nextIv, ctx-> iv, DES3_BLOCK_SIZE);
Я предполагаю, что это сделаноopaque.
Чем можно заменить оператор memcpy
для обновления iv ctx, чтобы избавиться от ошибки?