Холтер, то, что вы хотите сделать, это применить так называемую подпись PAdES к документу PDF.Для этого вам понадобится библиотека, которая знакома с PAdES и PDF.
Для этого вам понадобится библиотека, которая поддерживает эти стандарты, самостоятельная генерация, конечно, выполнима, но занимает много времени.Наиболее распространенная библиотека PDF, используемая с поддержкой C #, вероятно, iText .
Существует также пакет nuget, который LGPLed .
Что происходитв цифровой подписи нет точного шифрования.«Цифровая подпись» в этом контексте означает, что в какой-то момент вы зарегистрировались для получения сертификата X.509, этот сертификат связывает имя с закрытым ключом.По сути, он говорит, что «владельцем этого ключа является Фред».
Затем вы хешируете документ (отдельные части документа) и шифруете этот хеш с помощью закрытого ключа сертификатов.Этот зашифрованный хеш является «подписью» на документе.Затем он внедряется в структуру, называемую CMS, эта CMS также получает копию сертификата, связанного с подписью, и включает некоторые другие метаданные (например, CRL, OCSP и т. Д.).
iText будет обрабатывать большую часть этогодля вас, и у них есть образец, который точно описывает, как это сделать.
Вам нужно будет получить сертификат откуда-нибудь, проще всего начать, вероятно, с регистрации бесплатного * S-MIME-сертификата от sectgo.com этому сертификату не будет доверять Adobe Acrobat (наиболее часто используемое средство просмотра PDF, когда используются цифровые подписи), но кроме этого ваши потребности будут удовлетворены без необходимости больше узнавать о сертификатах.
Когда вы идете в производство, вы хотите получить так называемый сертификат AATL, вы можете получить их из разных мест, включая GlobalSign и DigiCert