Microsoft CryptoAPI を使用する Windows アプリケーション (Visual Studio を使用) があります。ここで、WinApp によって暗号化されたデータを読み取り、WinApp によって復号化される Mac OS X 上のデータを暗号化できる Mac OS X アプリケーションを開発する必要があります。このような方法で初期化された 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。しかし、目的のためにライブラリを使用することは明らかではありません (特に、セキュリティ/暗号化 API に慣れていないことを考慮すると)。誰かが特定の暗号化ライブラリを推奨できますか? 私のタスクのコード例はありますか?
添加:
主な問題は、Microsoft のバージョンと互換性のある ::CryptDeriveKey のポータブル アナログが必要なことです (つまり、同じキーを生成します)。誰かそのようなものを知っていますか?または、::CryptDeriveKey によって鍵を作成するアルゴリズムですか?