3、TrustEvaluate,只是这里的列表换成了客户端保存的那些证书列表。若要验证这个,是否应该把服务端证书的颁发机构根证书也放到客户端里?AFSSLPinningModePublicKey这个模式同样是用证书绑定方式验证,客户端要有服务端的证书拷贝,只是验证时只验证证书里的公钥,不验证证书的有效期等信息。只要公钥是正确的,就能保证通信不会被窃听,因为中间人没有私钥,无法解开通过公钥加密的数据。详情请见代码:[objc] viewplaincopy1.#import "AFSecurityPolicy.h" 2. 3.// Equivalent of mac
4、ro in , without causing compiler warning: 4.// "'DebugAssert' is deprecated: first deprecated in OS X 10.8" 5.//这两个宏方法用于方便地处理调用各种证书方法过程中出现的错误,出现错误后用goto语句直接跳转到结束语 6.//关于为什么要用 __builtin_expect (x, 0) 而不直接用 x != 0,是为了CPU执行时的性能优化,见这里: 7.//http://stackoverflow.com/que
5、stions/7346929/why-do-we-use-builtin-expect-when-a-straightforward-way-is-to-use-if-else 8.#ifndef AF_Require_noErr 9. #define AF_Require_noErr(errorCode, exceptionLabel) 10. do {