将Microsoft CryptoAPI移植到Mac OS

时间:2011-01-27 13:00:26

标签: macos cryptoapi

我有一个使用的Windows应用程序(使用Visual Studio) Microsoft CryptoAPI。现在需要开发Mac OS X. 应用程序,能够读取由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。但 使用我的瞳孔库是不明显的(特别是 考虑到,我不熟悉Sequrity / Crypting 蜜蜂)。有人可以推荐一个特定的加密库吗?可以 我的任务有代码示例吗?

此外:

似乎主要问题是我需要:: CryptDeriveKey的可移植模拟,它与Microsoft版本兼容(即生成相同的密钥)。有人知道这样的吗?或者是:: CryptDeriveKey创建密钥的算法?

1 个答案:

答案 0 :(得分:1)

我建议您查看CyaSSL嵌入式SSL库。它支持最高达TLS 1.2的当前标准,并且在操作系统中非常便携。特别是,CyaSSL包含CTaoCrypt加密库,可以让您执行您正在寻找的加密操作。

CyaSSL的一些有用的文档链接:

CTaoCrypt用法参考:http://yassl.com/yaSSL/Docs_CTaoCrypt_Usage_Reference.html
CyaSSL文档页面:http://yassl.com/yaSSL/Docs.html

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

的问候,
克里斯

相关问题