Мне было поручено внедрить библиотеку PKI на C# для проекта компании, и я не смог найти ее хорошую реализацию. Похоже, что есть несколько библиотек и много неработающих ссылок, указывающих на библиотеки MSDN, которые были удалены. Я видел людей, использующих Crypt32.dll, людей, создающих свои собственные библиотеки, людей, использующих P/Invoke для доступа к системным хранилищам сертификатов, людей, расширяющих встроенные библиотеки, примеры, которые просто не применимы к C# (например, примеры Java), и коммерческие библиотеки.
Мой вопрос: какая реализация/библиотека наиболее рекомендуется для простого шифрования/дешифрования данных?
В качестве основы для того, что я планирую с ним делать, мне просто нужно зашифровать сообщения с помощью закрытого ключа (.pfx) и расшифровать с помощью открытых ключей (.cer). Подписание сообщений и проверка подлинности не требуются на этом уровне проекта, хотя это может потребоваться в будущем. Я видел ссылки на длины шифрования, которые меня беспокоят. Нам нужно иметь возможность зашифровать сообщение любой длины (в разумных пределах, конечно!). Стоит ли мне об этом беспокоиться, и если да, то есть ли способ справиться с этим?
Я бы предпочел не хранить открытые/закрытые ключи в диспетчере сертификатов Windows, если это вообще возможно, но если это значительно упрощает реализацию, пусть будет так.
Я понимаю, что PKI и шифрование - это большая и сложная тема, но я все равно надеюсь на относительно простую библиотеку... (можно надеяться, верно?)
Спасибо!