Что такое альтернативный API вместо AES_ctr128_encrypt из openssl 1.1.0? - PullRequest
0 голосов
/ 17 сентября 2018

Мне нужно использовать 128-битный алгоритм AES в режиме CTR для шифрования из библиотеки openssl. Но похоже, что соответствующая функция AES_ctr128_encrypt удалена из openssl 1.1.0g. потому что я получаю ошибку ниже: -

Документация или ссылки из Интернета не предлагают альтернативную функцию для режима AES CTR. Что является точной альтернативой для AES_ctr128_encrypt с openssl 1.1.0g?

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

К ответу mnistic я бы добавил, что вы не должны забывать включить следующие заголовки:

  • openssl / aes.h
  • openssl / modes.h

Итак, это:

AES_ctr128_encrypt(
  cipher_in,
  plaintext_out,
  bytes_length,
  &cipher->aes_key->key,
  cipher->aes_key->IV,
  counter,
  &offset);

станет:

#include <openssl/aes.h>
#include <openssl/modes.h>
.
.
.
CRYPTO_ctr128_encrypt(
  cipher_in,
  plaintext_out,
  bytes_length,
  &cipher->aes_key->key,
  cipher->aes_key->IV,
  counter,
  &offset, 
  (block128_f)AES_encrypt);
0 голосов
/ 17 сентября 2018

Вы можете использовать CRYPTO_ctr128_encrypt(), поэтому вместо:

AES_ctr128_encrypt(
  in, 
  out, 
  len, 
  &cipher->aes_key->key, 
  cipher->aes_key->IV, 
  buffer, 
  &num);

Вы бы сделали:

CRYPTO_ctr128_encrypt(
  in, 
  out, 
  len, 
  &cipher->aes_key->key, 
  cipher->aes_key->IV, 
  buffer, 
  &num, 
  (block128_f)AES_encrypt);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...