Objective c 你的评估没有像预期的那样失败吗?

Objective c 你的评估没有像预期的那样失败吗?,objective-c,macos,cocoa,ssl,Objective C,Macos,Cocoa,Ssl,我有一些代码在example.com上执行HTTPS获取 问题是,我在下面插入了一个伪造的CA(@“CA-rsa-cert.der”),因此SecTrustEvaluate应该失败。(或者我很幸运,生成了与real example.com的签名证书相同的公钥/私钥对) 基本上,步骤与中概述的步骤相同(问题是关于加载CA证书)。我还回顾了苹果TN2232和,但我没有看到我的错误 有什么想法吗?我应该更加注意和中的细节 我没有正确使用API。OSStatus仅在调用SecTrustEvaluate成

我有一些代码在
example.com
上执行HTTPS获取

问题是,我在下面插入了一个伪造的CA(
@“CA-rsa-cert.der”
),因此
SecTrustEvaluate
应该失败。(或者我很幸运,生成了与real example.com的签名证书相同的公钥/私钥对)

基本上,步骤与中概述的步骤相同(问题是关于加载CA证书)。我还回顾了苹果TN2232和,但我没有看到我的错误


有什么想法吗?

我应该更加注意和中的细节

我没有正确使用API。
OSStatus
仅在调用
SecTrustEvaluate
成功(或失败)时提供。要获得评估结果,请执行以下操作:

SecTrustResultType result
status = SecTrustEvaluate(serverTrust, &result);
if(!(errSecSuccess == status))
    break; /* failed */

if(result != kSecTrustResultUnspecified && result != kSecTrustResultProceed)
    break; /* failed */

...
status = SecTrustEvaluate(serverTrust, NULL);
if(!(errSecSuccess == status))
    break; /* failed */
SecTrustResultType result
status = SecTrustEvaluate(serverTrust, &result);
if(!(errSecSuccess == status))
    break; /* failed */

if(result != kSecTrustResultUnspecified && result != kSecTrustResultProceed)
    break; /* failed */

...