public async Task VerifyAsync()

in net/JetBrains.SignatureVerifier/src/Crypt/AuthenticodeSignatureVerifier.cs [98:127]


  public async Task<VerifySignatureResult> VerifyAsync(
    SignatureData signatureData,
    [NotNull] ComputeHashInfo computeHashInfo,
    [NotNull] Stream stream,
    [NotNull] SignatureVerificationParams signatureVerificationParams,
    [NotNull] FileIntegrityVerificationParams fileIntegrityVerificationParams)
  {
    if (computeHashInfo == null) throw new ArgumentNullException(nameof(computeHashInfo));
    if (stream == null) throw new ArgumentNullException(nameof(stream));
    if (signatureVerificationParams == null) throw new ArgumentNullException(nameof(signatureVerificationParams));
    if (fileIntegrityVerificationParams == null) throw new ArgumentNullException(nameof(fileIntegrityVerificationParams));

    var signedMessage = SignedMessage.CreateInstance(signatureData);
    var signatureVerificationResult = await _signedMessageVerifier.VerifySignatureAsync(signedMessage, signatureVerificationParams);

    if (!signatureVerificationResult.IsValid)
    {
      _logger?.Warning("Authenticode signature verification failed: certificates or attributes validation failed");
      return signatureVerificationResult;
    }

    var fileIntegrityVerificationResult = VerifyFileIntegrity(signedMessage, computeHashInfo, stream, fileIntegrityVerificationParams);

    if (!fileIntegrityVerificationResult.IsValid)
      _logger?.Warning("Authenticode signature verification failed: file integrity verification failed");
    else
      _logger?.Info("Authenticode signature verification successfully passed");

    return fileIntegrityVerificationResult;
  }