2012-03-31 22 views
0

のiOS 5.0の後、人々はここに利用できるCommonCryptoのためのオープンソースのコードを使用して提案しているまでCCKeyDerivationPBKDFが利用できないので:CommonCrypto for iOS 4をコンパイルして使用するにはどうすればよいですか?

http://www.opensource.apple.com/source/CommonCrypto/CommonCrypto-55010/

私の質問は - どのように1は、既存のプロジェクトでは、このオープンソースのコードを使用しません? dylibを作成して何らかの形でプロジェクトに組み込むか、ソースコードファイルを取り込んで既存のプロジェクトに追加する必要がありますか?あなたはXcodeでそれをどのようにしていますか?実行時にiOS 4デバイス/シミュレータ上で関数が見つかったことをどうやって確認しますか?

ありがとうございました。

答えて

2

私は私のXcodeプロジェクトにCommonKeyDerivation.c、CommonKeyDerivation.h、CommonKeyDerivationPriv.hを含める必要がありましたが、それは十分だった - CCKeyDerivationPBKDFで必要なその他のサポート/根本的な機能はすでにiOS4をCommonCryptoに含まれているようなので。

+0

これは私の感情でした。私が望んでいたように実際にはうまくいきました。 –

0

@Raj Lalwaniの答えは完全ではないので要約すると、いくつかの詳細は除外されました!

3つのファイル:

  • CommonKeyDerivation.c
  • CommonKeyDerivation.h
  • CommonKeyDerivationPriv.h標準の以下のCommonKeyDerivation.cのソースで

、アップルのライセンスコメント、これを挿入:

#define KERNEL

これは、コンパイラエラーをオフにします。 iOSの4.2をターゲットSnow Leopardの上の場合

int 
CCKeyDerivationPBKDF(CCPBKDFAlgorithm algorithm, const char *password, size_t passwordLen, 
         const uint8_t *salt, size_t saltLen, 
         CCPseudoRandomAlgorithm prf, uint rounds, 
         uint8_t *derivedKey, size_t derivedKeyLen) 
         __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA); 

そして

uint 
CCCalibratePBKDF(CCPBKDFAlgorithm algorithm, size_t passwordLen, size_t saltLen, 
       CCPseudoRandomAlgorithm prf, size_t derivedKeyLen, uint32_t msec) 
       __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA); 

変更し、この__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_4_2)__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA)CommonKeyDerivation.hのソースで

は、示すように、2つのプロトタイプがあります。

ビルドオプションにインクルードパスを指定する必要がある場合があります。

関連する問題