public IActionResult CreateHash() { try { if (HttpContext.Request.Form.Files.Count <= 0) { return(BadRequest("Файлов для рассчета хэш не обнаружено.")); } var form = HttpContext.Request.Form; var file = HttpContext.Request.Form.Files[0]; var stream = new MemoryStream(); file.CopyTo(stream); stream.Position = 0; string thumbprint = form["thumbprint"]; if (string.IsNullOrEmpty(thumbprint)) { return(BadRequest("Не удалось получить значение thumbprint для поиска сертификата.")); } // Подписываем данные, необходимо убедиться что значение Stream.Position = 0 var hash = provider.CreateHash(stream, thumbprint); return(Ok(hash)); } catch (Exception ex) { return(BadRequest($"Ошибка при выполнении запроса: {ex.Message}.")); } }
/// <summary> /// Метод выполнения тестов формирования хэш /// </summary> /// <param name="csp"></param> /// <param name="directory"></param> /// <param name="thumbprint"></param> private void CreateHashExecuteTest(CspType csp, string directory, string thumbprint) { SignServiceProvider provider = new SignServiceProvider(csp, new LoggerFactory()); var files = Utils.GetFilesList(directory); foreach (var file in files) { var data = Utils.GetStreamFromFile(file); var stream = new MemoryStream(data); var hash = provider.CreateHash(stream, thumbprint); Assert.IsTrue(!string.IsNullOrEmpty(hash)); } }