Macos 将Microsoft CryptoAPI移植到Mac OS

Macos 将Microsoft CryptoAPI移植到Mac OS,macos,cryptoapi,Macos,Cryptoapi,我有一个windows应用程序(使用Visual Studio),它使用 微软加密API。现在需要开发MacOSX 应用程序,能够读取由WinApp加密的数据, 并在Mac OS X上加密数据,这些数据将由WinApp解密。 WinApp中的加密/说明以以下方式初始化: ::CryptAcquireContext(&m_hCryptProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); ::CryptCreateHash

我有一个windows应用程序(使用Visual Studio),它使用 微软加密API。现在需要开发MacOSX 应用程序,能够读取由WinApp加密的数据, 并在Mac OS X上加密数据,这些数据将由WinApp解密。 WinApp中的加密/说明以以下方式初始化:

::CryptAcquireContext(&m_hCryptProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);
::CryptCreateHash(m_hCryptProv, CALG_MD5, 0, 0, &m_hCryptHash);
::CryptHashData(m_hCryptHash, pbtPSW, dwPSWLen, 0);
::CryptDeriveKey(m_hCryptProv, CALG_RC4, m_hCryptHash, 0, &m_hCryptKey);
对于加密/说明,使用以下内容:

::CryptEncrypt(m_hCryptKey, 0, TRUE, 0, pBuf, &dwCnt, dwLen);
::CryptDecrypt(m_hCryptKey, 0, TRUE, 0, pBuf, &dwCnt);
据我所知,我需要找到一个实现MD5的库 哈希加RC4编码/解码。似乎有一个 这类图书馆的数量。例如:matrixSSL、OpenSSL。但是 我的学生使用图书馆的情况并不明显(尤其是 考虑到我不熟悉Sequerity/加密 API)。有人能推荐一个特定的加密库吗?也许 我的任务有代码示例吗

补充:


似乎主要的问题是我需要一个与Microsoft版本兼容的::CryptDeriveKey的可移植模拟程序(即生成相同的密钥)。有人认识这样的人吗?或者通过::CryptDeriveKey?创建密钥的算法?

我建议查看CyaSSL嵌入式SSL库。它支持最高达TLS 1.2的当前标准,并且非常适合跨操作系统移植。特别是,CyaSSL包含CTaoCrypt加密库,该库应允许您执行所需的加密操作

CyaSSL的一些有用文档链接:

CTaoCrypt使用参考:
CyaSSL文档页面:

如果下载CyaSSL,您还可以找到一个VisualStudio项目文件来查看

问候,

Chris

Hmm,您甚至不了解源代码的功能,就要移植与加密相关的代码。从安全性的角度看没有多大意义…Eugene,我想做的是——用一个可移植库中的类似物替换原始CryptoAPI函数。这项工作所需时间越短越好。这不是一个顺序关键的应用程序,加密/解密只是一个小而不是很重要的部分。没关系,重要的是安全性。如果你不明白自己在做什么,你就做不好。谢谢克里斯。正如我在原始消息之外所写的,主要问题是以与::CryptDeriveKey完全相同的方式实现::CryptDeriveKey。由于原始方法很弱,密钥不能与加密文件一起存储。所以我需要重现生成密钥的过程(特别是::CryptDeriveKey函数)。