c++ - 使用非对称 key 的大文件加密/解密的C程序

标签 c++ c openssl embedded embedded-linux

我遇到了这个问题,我需要在 OpenSSL 的帮助下使用非对称 key 对大文件 (>5MB) 进行加密解密。

以下是我的要求的简要说明:-

  1. 我有一台运行 Linux 的设备。
  2. 设备可以从服务器下载固件镜像/补丁。
  3. 服务器中的图像/补丁将使用已共享给他们的公钥加密。
  4. 下载图像后,设备需要使用私钥对其进行解密以验证其真实性。
  5. 目标设备将使用在其上构建和安装的 OpenSSL 库进行解密。
  6. 除此之外,目标设备还需要验证下载的固件镜像/补丁的签名。

我在 Internet 上找到了许多不同的方法。对我来说最吸引人的方法是使用 OpenSSL S/MIME 加密/解密。但是我没有找到合适的库/工具来使用 C 编程语言来完成这项工作。我发现的所有示例都主要使用控制台应用程序。

有一些示例 C 程序,但没有使用非对称 key 进行加密和解密;他们使用随机的 128 位 key 和 IV 代替。

谁能提供一些例子来帮助我。

最佳答案

不要忘记 OpenSSL 是开源的。如果您想查看“openssl smime”命令的源代码,则需要查看 apps/smime.c。 openssl 源代码中的文件。

关于c++ - 使用非对称 key 的大文件加密/解密的C程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047751/

相关文章:

c++ - 带有 gcc 4.4.7 的 CentOS 5.8 链接到 libstdc++ 6.0.8。这怎么可能?

c - 如何将二进制数据添加(和使用)到已编译的可执行文件中?

c++ - CMake在Brew上找不到OpenSSL

php - PHP OpenSSL 可以生成私钥/公钥/证书对吗?

c++ - memory_order_acquire 真的足以锁定自旋锁吗?

java - 改进计算余数的递归

c++ - _bstr_t 内存泄漏

C99 删除 stricmp() 和 strnicmp()?

c++ - 只读取可变长度数组的长度,而不读取 hdf5 中的元素

encryption - 证书签名请求中手动创建的签名与 openssl req 生成的签名不匹配