0

CCKeyDerivationPBKDF は iOS 5.0 以降まで利用できないため、ここで利用可能な CommonCrypto のオープン ソース コードを使用することを提案する人がいます。

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

私の質問は、既存のプロジェクトでこのオープン ソース コードをどのように使用するかということです。dylib を作成して何らかの方法でプロジェクトに含めるか、ソース コード ファイルを取得して既存のプロジェクトに追加する必要がありますか? Xcodeでどのようにしますか?iOS 4 デバイス/シミュレーターで実行時に関数を見つけるにはどうすればよいですか?

ありがとう。

4

2 に答える 2

2

Xcode プロジェクトに CommonKeyDerivation.c、CommonKeyDerivation.h、CommonKeyDerivationPriv.h を含める必要がありましたが、それだけで十分でした。なぜなら、CCKeyDerivationPBKDF に必要な他のサポート/基礎となる関数は、iOS4 CommonCrypto に既に含まれているようだからです。

于 2012-04-01T21:41:29.850 に答える
0

要約すると、@ Raj Lalwaniの回答は完全ではないため、一部の詳細は省略されています!!!

3 つのファイル:

  • CommonKeyDerivation.c
  • CommonKeyDerivation.h
  • CommonKeyDerivationPriv.h

CommonKeyDerivation.cのソースで、標準の Apple ライセンス コメントの下に、これを挿入します。

#define KERNEL

これにより、コンパイラ エラーが停止します。

CommonKeyDerivation.hのソースには、次の 2 つのプロトタイプがあります。

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

iOS 4.2 を対象とする Snow Leopard の場合は、__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA)をこれに変更します。__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_4_2)

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

于 2013-05-03T12:26:54.003 に答える