/// <summary> /// Проверяеи ЭЦП данных. /// </summary> /// <param name="signature">Подпись (ЭЦП).</param> /// <param name="hashContext">Контекст хэша данных.</param> /// <param name="flags">Дополнительные управляющие флаги.</param> /// <returns>True, если ЭЦП корректна.</returns> public bool VerifySignature(byte[] signature, HashContext hashContext, int flags) { if (CryptoApi.CryptVerifySignature(hashContext.Handler, signature, signature.Length, handler, null, flags)) { return(true); } if (Marshal.GetLastWin32Error() == Constants.NteBadSignature) { return(false); } throw new Win32Exception(Marshal.GetLastWin32Error()); }