В чем причина kSecTrustResultRecoverableTrustFailure?

Я бы хотел проверить свои сертификаты ssl-сервера с помощью дополнительных проверок. И иногда я получаю

kSecTrustResultRecoverableTrustFailure 

вместо

kSecTrustResultProceed или kSecTrustResultUnspecified

Кажется, что это происходит, если

  • сертификат хеширован md5 (IOS5)
  • сервер не представляет корневой и промежуточный сертификаты
  • SecTrustSetAnchorCertificatesOnly (trust, YES) установлен, и сертификат привязки есть только во встроенных сертификатах привязки
  • срок действия сертификата истек
  • ?

Это зависит от политики AppleX509TP, используемой для оценки доверия.

Моя проблема в том, что я не хочу доверять, если цепочка дает сбой, но я хочу доверять, если используется MD5.

Есть ли способ узнать, почему оценка не удалась?

В качестве альтернативы есть способ извлечь CSSM_ALGID_MD5 из SecCertificateRef ?

6
задан n3utrino 12 October 2011 в 13:35
поделиться