Как работать с CryptoAPI через C #? - PullRequest
4 голосов
/ 07 июля 2011

Существует группа функций CryptoApi, которая работает с поставщиками криптографических услуг (CSP).

CPAcquireContext
CPCreateHash
CPDecrypt
CPDeriveKey
CPDestroyHash
CPDestroyKey
CPDuplicateHash
CPDuplicateKey
CPEncrypt
CPExportKey
CPGenKey
CPGenRandom
CPGetHashParam
CPGetKeyParam
CPGetProvParam
CPGetUserKey
CPHashData
CPHashSessionKey
CPImportKey
CPReleaseContext
CPSetHashParam
CPSetKeyParam
CPSetProvParam
CPSignHash
CPVerifySignature

Да, я знаю, что есть пространство имен System.Cryptography. Но мне не нужны их реализации.

Есть ли готовая библиотека, которая предоставляет оболочку .NET для этих функций?

Ответы [ 2 ]

3 голосов
/ 07 июля 2011

На MSDN была опубликована расширенная статья на эту тему:

Расширение криптографии .NET с CAPICOM и P / Invoke

Статья об использовании Хранилища сертификатов CryptoAPI из .Net.

Некоторые объявления P / Invoke отменены из этого сообщения в блоге , в котором приведены определения p / Invoke для него:

[snip] пример кода слишком велик для SO [/ snip]

1 голос
/ 07 июля 2011

Я думаю, что вам лучше всего использовать P / Invoke для добавления функциональности в ваше приложение C #.Вот (старая) статья на MSDN об использовании P / Invoke и CryptoAPI в C #:

Расширение .NET Cryptography с CAPICOM и P / Invoke

Это для .Net1.1, но понятия все те же.

...