【问题标题】:Is it possible to use AES CTR mode encryption using the EVP API?是否可以使用 EVP API 使用 AES CTR 模式加密?
【发布时间】:2011-04-16 13:08:14
【问题描述】:

我是 OpenSSL 的新手。我知道应该使用 EVP API 执行加密,该 API 作为所有密码的通用接口。 AES CTR 模式似乎存在于我拥有的 OpenSSL 版本中,但在 evp.h 中禁用了 EVP_aes_128_ctr 的定义:

#if 0
const EVP_CIPHER *EVP_aes_128_ctr(void);
#endif

知道这是为什么吗?我可以删除#if 0 吗?任何其他关于让 128 位 AES CTR 模式加密在 OpenSSL 中工作的指针将不胜感激!

谢谢!

【问题讨论】:

    标签: encryption openssl aes


    【解决方案1】:

    顺便说一句,看起来这个问题的答案是否定的,还没有。但也许很快。我发现此电子邮件线程表明解决此问题的补丁可能已在 2010 年 6 月提交:

    http://www.mail-archive.com/libssh2-devel@cool.haxx.se/msg01972.html

    但是当我从 SVN 下载最新的开发分支时,在 EVP 中仍然没有启用 AES CTR。我最终只是直接实现它,我发现此链接对此很有帮助:

    AES CTR 256 Encryption Mode of operation on OpenSSL

    【讨论】:

      【解决方案2】:

      我使用的是 AES CTR 128 模式,它可以工作。我正在使用 libssl1.0.0(我不确定我是否回答了正确的问题!我希望它会有所帮助)。 这是我的代码的一部分:

      EVP_CipherInit_ex(ctx, EVP_aes_128_ctr(), NULL, key, iv,1);
      EVP_CipherUpdate (ctx, ciphertext, &len, plaintext, plaintext_len);
      /* Finalise the encryption. */
      if(! EVP_CipherFinal_ex(ctx, ciphertext + len, &len)) handleErrors();
      /*setting padding option*/
      EVP_CIPHER_CTX_set_padding(ctx,0);
      /* Clean up */
      EVP_CIPHER_CTX_free(ctx);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-23
        • 1970-01-01
        • 1970-01-01
        • 2011-09-16
        • 1970-01-01
        • 2017-11-08
        • 2015-06-09
        • 1970-01-01
        相关资源
        最近更新 更多