Эти четыре проверки уже выполнены системой.Если у вас не было пользовательского обратного вызова, это именно то, что было бы применено для вас.
В пользовательском обратном вызове состояние этих состояний представлено параметрами error
и chain
... error
- это [Flags] значение.
Если установлено RemoteCertificateNameMismatch
, то имя не соответствует записям SAN (или записям CN, если не было записей SAN-DNS) - ваше условие (1).
Если установлено значение RemoteCertificateChainErrors
, то объект chain
будет указывать, почему он недействителен (что-то истекло, корень не был доверенным, и намного больше потенциальных проблем).
Итак,самый простой ответ (без регистрации обратного вызова) - return errors == SslPolicyErrors.None;