public async Task VerifyAsync()

in net/JetBrains.SignatureVerifier/src/Crypt/SignerInfoVerifier.cs [46:103]


    public async Task<VerifySignatureResult> VerifyAsync(
      [NotNull] SignatureVerificationParams signatureVerificationParams)
    {
      if (signatureVerificationParams == null)
        throw new ArgumentNullException(nameof(signatureVerificationParams));

      var certList = _certs.EnumerateMatches(_signer.SignerID).ToList();

      if (certList.Count < 1)
      {
        _logger.Error(Messages.signer_cert_not_found);

        return new VerifySignatureResult(VerifySignatureStatus.InvalidSignature)
          { Message = Messages.signer_cert_not_found };
      }

      var cert = certList[0];

      try
      {
        if (!_signer.Verify(cert))
          return new VerifySignatureResult(VerifySignatureStatus.InvalidSignature);

        if (signatureVerificationParams.BuildChain)
          applySignValidationTime(signatureVerificationParams);

        var verifyCounterSignResult =
          await verifyCounterSignAsync(signatureVerificationParams);

        if (verifyCounterSignResult.NotValid)
          return verifyCounterSignResult;

        var verifyTimeStampResult = await verifyTimeStampAsync(signatureVerificationParams);

        if (verifyTimeStampResult.NotValid)
          return verifyTimeStampResult;

        var verifyNestedSignsResult = await verifyNestedSignsAsync(signatureVerificationParams);

        if (verifyNestedSignsResult.NotValid)
          return verifyNestedSignsResult;

        if (signatureVerificationParams.BuildChain)
          return await buildCertificateChainAsync(cert, _certs, signatureVerificationParams);

        return VerifySignatureResult.Valid;
      }
      catch (CmsException ex)
      {
        return new VerifySignatureResult(VerifySignatureStatus.InvalidSignature)
          { Message = ex.FlatMessages() };
      }
      catch (CertificateExpiredException ex)
      {
        return new VerifySignatureResult(VerifySignatureStatus.InvalidSignature)
          { Message = ex.FlatMessages() };
      }
    }