Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何为iOS 4编译和使用CommonCrypto?_Iphone_Ios_Xcode_Commoncrypto - Fatal编程技术网

Iphone 如何为iOS 4编译和使用CommonCrypto?

Iphone 如何为iOS 4编译和使用CommonCrypto?,iphone,ios,xcode,commoncrypto,Iphone,Ios,Xcode,Commoncrypto,由于CCKeyDerivationPBKDF在iOS 5.0之后才可用,因此人们建议使用此处提供的CommonCrypto的开放源代码: 我的问题是-如何在现有项目中使用此开源代码?我们应该创建动态库并以某种方式将其包含在项目中,还是将源代码文件添加到现有项目中?如何在Xcode中实现它?如何确保在iOS 4设备/模拟器上运行时找到该功能 谢谢。我不得不在我的Xcode项目中包括CommonKeyDerivation.c、CommonKeyDerivation.h、CommonKeyDeriv

由于CCKeyDerivationPBKDF在iOS 5.0之后才可用,因此人们建议使用此处提供的CommonCrypto的开放源代码:

我的问题是-如何在现有项目中使用此开源代码?我们应该创建动态库并以某种方式将其包含在项目中,还是将源代码文件添加到现有项目中?如何在Xcode中实现它?如何确保在iOS 4设备/模拟器上运行时找到该功能


谢谢。

我不得不在我的Xcode项目中包括CommonKeyDerivation.c、CommonKeyDerivation.h、CommonKeyDerivationPriv.h,但这已经足够了–因为似乎iOS4 CommonCrypto中已经包含了CCKeyDerivationPBKDF所需的其他支持/基础功能。

总结一下,因为@Raj Lalwani的答案并不完整-一些细节被遗漏了

三个文件:

  • CommonKeyDerivation.c
  • CommonKeyDerivation.h
  • CommonKeyDerivationPriv.h
在CommonKeyDerivation.c的源代码中,在标准Apple许可评论的下方插入以下内容:

#定义内核

这将关闭编译器错误

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

\uuuuuuOSX\uAvailable\uStarting(\uuuuMac\u10\u7,\uuuuuIphone\uNA)
更改为此
\uuuOSX\uAvailable\uStarting(\uuuuMac\u10\u6,\uuuIphone\u4\u2)
,如果在针对iOS 4.2的雪豹上


您可能必须在构建选项中指定包含路径。

这是我的直觉;很高兴它真的像我希望的那样简单。
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);