总而言之,由于@Raj Lalwani 的回答并不完整 - 一些细节被遗漏了!!!
三个文件:
- CommonKeyDerivation.c
- CommonKeyDerivation.h
- CommonKeyDerivationPriv.h
在CommonKeyDerivation.c的源代码中,在标准 Apple 许可注释的下方,插入以下内容:
#define KERNEL
这将关闭编译器错误。
在CommonKeyDerivation.h的源代码中,有两个原型,如下所示:
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)
您可能必须在构建选项中指定包含路径。