parameters: (self, verify, trust_bundle)
docstring: Called when we have set custom validation. We do this in two cases:
          first, when cert validation is entirely disabled; and second, when
          using a custom trust DB.
          Raises an SSLError if the connection is not trusted.
docstring_summary: Called when we have set custom validation. We do this in two cases:
          first, when cert validation is entirely disabled; and second, when
          using a custom trust DB.
          Raises an SSLError if the connection is not trusted.
docstring_tokens: Called when we have set custom validation . We do this in two cases : first when cert validation is entirely disabled ; and second when using a custom trust DB . Raises an SSLError if the connection is not trusted .
function: def _custom_validate(self, verify, trust_bundle):
          """
          Called when we have set custom validation. We do this in two cases:
          first, when cert validation is entirely disabled; and second, when
          using a custom trust DB.
          Raises an SSLError if the connection is not trusted.
          """
          # If we disabled cert validation, just say: cool.
          if not verify:
              return
  
          successes = (
              SecurityConst.kSecTrustResultUnspecified,
              SecurityConst.kSecTrustResultProceed,
          )
          try:
              trust_result = self._evaluate_trust(trust_bundle)
              if trust_result in successes:
                  return
              reason = "error code: %d" % (trust_result,)
          except Exception as e:
              # Do not trust on error
              reason = "exception: %r" % (e,)
  
          # SecureTransport does not send an alert nor shuts down the connection.
          rec = _build_tls_unknown_ca_alert(self.version())
          self.socket.sendall(rec)
          # close the connection immediately
          # l_onoff = 1, activate linger
          # l_linger = 0, linger for 0 seoncds
          opts = struct.pack("ii", 1, 0)
          self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, opts)
          self.close()
          raise ssl.SSLError("certificate verify failed, %s" % reason)
function_tokens: def _custom_validate ( self , verify , trust_bundle ) : # If we disabled cert validation, just say: cool. if not verify : return successes = ( SecurityConst . kSecTrustResultUnspecified , SecurityConst . kSecTrustResultProceed , ) try : trust_result = self . _evaluate_trust ( trust_bundle ) if trust_result in successes : return reason = "error code: %d" % ( trust_result , ) except Exception as e : # Do not trust on error reason = "exception: %r" % ( e , ) # SecureTransport does not send an alert nor shuts down the connection. rec = _build_tls_unknown_ca_alert ( self . version ( ) ) self . socket . sendall ( rec ) # close the connection immediately # l_onoff = 1, activate linger # l_linger = 0, linger for 0 seoncds opts = struct . pack ( "ii" , 1 , 0 ) self . socket . setsockopt ( socket . SOL_SOCKET , socket . SO_LINGER , opts ) self . close ( ) raise ssl . SSLError ( "certificate verify failed, %s" % reason )