有一组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包装器?
答案 0 :(得分:3)
MSDN上有关于此主题的扩展文章:
Extending .NET Cryptography with CAPICOM and P/Invoke
关于使用.Net的CryptoAPI Certificate Stores的文章。
一些P / Invoke声明从this blog post解除,显示了它的p / Invoke定义:
[snip]代码示例对SO [/ snip]
来说太大了
答案 1 :(得分:1)
我认为最好的办法是使用P / Invoke将功能提取到C#应用程序中。 这是MSDN关于在C#中使用P / Invoke和CryptoAPI的一篇(旧)文章:
Extending .NET Cryptography with CAPICOM and P/Invoke
它适用于.Net 1.1,但概念仍然相同。