Как сохранить цифровую подпись файла или текста в C#? - PullRequest
1 голос
/ 16 апреля 2020

Я пытаюсь подписать цифровой файл (независимо от расширения), и это НЕ Xml файл. Итак, подписанный Xml файл C# не полезен. Я могу генерировать подпись, используя SHA256 и RSACryptoServiceProvider.SignHa sh. Теперь вопросы, где и как хранить сгенерированную цифровую подпись. Существует ли какой-либо стандарт или какой-либо API в. Net для хранения цифровых подписей?

Обновление: хотите подписать данные и поделиться с клиентом, чтобы они могли проверить их с помощью любого стандартизированного инструмента. Мы подписываемся, и кто-то еще будет проверять. Файл, которым мы делимся, не поддерживает подпись, например, как XML или PDF. Это проблема. Да, у нас есть байтовый массив после подписи. Поэтому, если клиент хочет проверить подпись, где находится информация, относящаяся к алгоритму HA SH и публикуемая информация о сертификате c, которую необходимо проверить? Для совместного использования сертификата HA SH, Publi c, подписи ... я ищу, есть ли какой-нибудь стандартный механизм

XML Стандарт подписи , но я не знаю, существует любой C# или. Net Базовый API, который может сделать это для других типов ресурсов.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Если вы хотите создать подписи в ЕС в рамках eIDAS и хотите создать файлы .asice, то есть несколько c# библиотек, таких как https://github.com/ks-no/fiks-asice-dotnet

Если это было Java тогда я бы определенно рекомендовал https://github.com/open-eid/digidoc4j

0 голосов
/ 17 апреля 2020

Используйте формат контейнера, такой как Cryptographi c Синтаксис сообщения или CMS, или используйте OpenPGP. Конечно, вам придется указать, что вы используете это для приемника, но это только так. CMS, вероятно, проще всего, поскольку Microsoft предоставляет для этого API. NET. Полученная подпись будет содержать спецификации алгоритма и тому подобное. Более того, есть реализация в OpenSSL и, например, BouncyCastle для Java.

...