2011-01-27 72 views
0

Microsoft CryptoAPIを使用するWindowsアプリケーション(Visual Studioが使用されています)があります。これで、WinAppで暗号化されたデータを読み取ることができるMac OS X アプリケーションを開発する必要があります。 とWinAppで解読されるMac OS Xのデータを暗号化します。このように初期化さWinAppで 暗号化/ decription:私は理解したようMicrosoft CryptoAPIをMac OSに移植する

::CryptEncrypt(m_hCryptKey, 0, TRUE, 0, pBuf, &dwCnt, dwLen); 
::CryptDecrypt(m_hCryptKey, 0, TRUE, 0, pBuf, &dwCnt); 

が、私はMD5を実装したライブラリを見つける必要がある:

::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); 

と暗号化のために/ decription使用され、次の ハッシング+ RC4エンコード/デコードそのようなライブラリの数は あると思われます。たとえば、matrixSSL、OpenSSLなどです。しかし 私の子犬のための図書館の使用は明白ではありません(特に を考慮して、私はSequrity/Crypting APIに精通していません)。誰かが特定の暗号化ライブラリを推奨できますか? 5月 私のタスクのコード例はありますか?

ADDITION:

(すなわち、同じキーを生成)主な問題は、私は:: CryptDeriveKeyのポータブルアナログを必要とするということであるが、Microsoftのバージョンと互換性があるようです。誰もそのようなものを知っていますか?または:: CryptDeriveKeyによってキーを作成するアルゴリズム?

+0

うーん、あなたもソースが何をするか理解せずにポート暗号化関連のコードしようとしています。セキュリティの観点からはあまり意味がありません... –

+0

ユージーン、私は何をしたいのですか?元のCryptoAPI関数を移植可能なライブラリのアナログに置き換えてください。そして、この仕事はできるだけ短い時間を要することが望ましい。これは重要なアプリケーションではありません。暗号化/復号化は、単に小さくて重要な部分ではありません。 – VitalyVal

+1

重要なセキュリティは重要ではありません。あなたはあなたが何をしているのかを理解することなく、正しいことをしません。 –

答えて

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のプロジェクトファイルを見つけることができますまた見てください。

よろしく、
クリス

+0

Chrisに感謝します。元のメッセージに加えて書いたように、主な問題は、:: CryptDeriveKeyの実装と同じように:: CryptDeriveKeyを実装することです。オリジナルのアプローチが弱いため、暗号化されたファイルでキーを保存することはありません。だから私はキーを生成する手順(特に:: CryptDeriveKey関数)を再現する必要があります。 – VitalyVal

関連する問題