/// <summary> /// Создаёт подпись данных хэша. /// </summary> /// <param name="keyNumber"> /// Тип ключа. /// </param> /// <param name="flags"> /// Дополнительные управляющие флаги. /// </param> /// <returns> /// Результат операции. /// </returns> public byte[] SignHash(KeyNumber keyNumber, int flags) { var signatureSize = 0; if (!CryptoApi.CryptSignHash(handler, (int)keyNumber, null, flags, null, ref signatureSize)) { throw new Win32Exception(Marshal.GetLastWin32Error()); } var signature = new byte[signatureSize]; if (!CryptoApi.CryptSignHash(handler, (int)keyNumber, null, flags, signature, ref signatureSize)) { throw new Win32Exception(Marshal.GetLastWin32Error()); } return(signature); }