【问题标题】:How to work with CryptoAPI via C#?如何通过 C# 使用 CryptoAPI?
【发布时间】:2011-07-07 13:31:01
【问题描述】:

有一组 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 包装器?

【问题讨论】:

  • System.Security.Cryptography 命名空间围绕 Windows CryptoAPI 的包装器。
  • 好的,我应该使用什么类来与第三方 CSP 合作?

标签: c# .net cryptography cryptoapi mscapi


【解决方案1】:

MSDN上有一篇关于这个话题的扩展文章:

Extending .NET Cryptography with CAPICOM and P/Invoke

.Net 中关于使用CryptoAPI Certificate Stores 的文章。

this blog post 提取的一些 P/Invoke 声明显示了它的 p/Invoke 定义:

[snip] 代码示例对于 SO [/snip] 来说太大了

【讨论】:

    【解决方案2】:

    我认为您最好的选择是使用 P/Invoke 将功能拉入您的 C# 应用程序。 这是 MSDN 上关于在 C# 中使用 P/Invoke 和 CryptoAPI 的(旧)文章:

    Extending .NET Cryptography with CAPICOM and P/Invoke

    适用于 .Net 1.1,但概念仍然相同。

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 2016-01-04
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      相关资源
      最近更新 更多