我的任务转移小型的二进制信息(1或2kb长)之间的桌面应用程序和移动设备。信息应该是非对称加密(RSA例如)。从我所学到的一个应该使用混合的密码系统对于这种任务:

  1. 产生随机对称的关键
  2. 加密普通的文本对称关键(使用AES为实例)
  3. 对称加密钥匙与公共密钥
  4. 发射密码文本和对称加密钥匙

我想不创造一个自己的格式存储的密码文本和对称加密钥匙。所以我绊倒CMS标准(加密消息syntax).乍一看,它看起来完全一样我需要什么。如果我理解的标准的正确它嵌入密码文本和对称加密钥匙以及信息的使用算法。

任何人都可以说是否应该使用CMS标准所概述的任务?不OpenSSL的CMS支助是足够我需要?

干杯,基督徒

有帮助吗?

解决方案

CMS肯定支持作顺序的,你要找的。在缺点,CMS格式本身和OpenSSL API为它是相当复杂。

一个细微褶皱的是CMS大多是操作方面的X.509证书,而不是公共钥匙。你能处理这个在你的系统,无论是由实际上推出了一个公用钥匙基础结构中,或只是使用自签证书(这是基本上等同于绕过裸RSA键,但有的优势是一个通用的格式结合的关键和元数据有时是相当有益无论如何)。

OpenSSL有下没有文件的CMS API;最佳的参考,它我能找到的是cms。c在应用程序/目录的OpenSSL源分配;代码是结构化作为一个1000线的主要功能,这是一个有点令人不安,但它并执行加密的公共关键所以你可能可以使用,作为一个指南。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top