问题标签 [cryptoapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12091 浏览

c# - 如何通过 C# 使用 CryptoAPI?

有一组 CryptoApi 函数可与加密服务提供商 (CSP) 一起使用。

是的,我知道有 System.Cryptography 命名空间。但我不需要他们的实现。

是否有任何现成的库为这些函数提供 .NET 包装器?

0 投票
2 回答
1905 浏览

c++ - 我们如何在 C++ 和 windows API 中验证 openssl 数字签名

使用 openssl 我在服务器上创建了签名文档,请参阅下面的命令。

------创建私钥。

------创建公钥。

------创建签名文档。

现在我可以使用如下所示的 opensll 验证数字签名

- -核实

但我需要在客户端应用程序中使用 C++ 和 Windows API 验证数字签名(没有 openssl 库或源代码)。我知道使用公钥和哈希我们可以验证数字签名。请尽快向我提供伪代码或 Windows API。

任何帮助表示赞赏。

0 投票
2 回答
4468 浏览

c# - 使用 CryptoAPI 在 Store C# 中通过哈希查找证书

我想使用 CryptoAPI P/Invoke 从 Store 获取证书。但是我遇到了一些问题。
我可以打开商店,但找不到证书。我不明白为什么。相同的代码适用于 C++。
我想使用 CryptoAPI,因为 .NET 只能使用带有可导出密钥的证书密钥,标记为“是”

将 CrytpoAPI 映射到 C# 的参考链接http://blogs.msdn.com/b/alejacma/archive/2007/11/23/p-invoking-cryptoapi-in-net-c-version.aspx

0 投票
1 回答
1119 浏览

cryptoapi - 在 Win32 应用程序中实现 HMAC-MD5 加密算法

我有一个 Win32 应用程序,它必须根据http://msdn.microsoft.com/en-us/library/cc236700(v=PROT.10).aspx实现算法 NTLM v2 身份验证。部分地,我需要一个加密算法 HMAC_MD5() 的实现。我看到 Win32 Crypto API 包含函数 CryptCreateHash;但无法理解:如何将它用于 HMAC-MD5?有人可以解释我或举个例子吗?

0 投票
1 回答
958 浏览

c++ - EVP_CipherInit_ex / EVP_CipherUpdate / EVP_CipherFinal_ex 的实现

我正在使用 OpenSSL 并libcrypto进行加密。我想问在哪里可以找到这些方法。我需要它们,因为我想在我的代码中添加这些方法。我只想要 .h 和 .cc 或 .c 文件。欣赏

0 投票
2 回答
1219 浏览

cryptography - 如何使用 CryptoAPI 加载带有 unicode CN 的证书?

我正在尝试从系统存储加载证书。我正在使用CertFindCertificateInStoreCryptoAPI 中的函数:

  1. 为什么我需要将 dwValueType 设置为CERT_RDN_ATTRtoCERT_RDN_PRINTABLE_STRING而不是CERT_RDN_UNICODE_STRING?(我使用的是 Unicode。)使用CERT_RDN_UNICODE_STRING此代码不起作用。

  2. 不过,我无法使用包含空格和俄语符号的主题 CN 加载证书。对于简单的 CN 名称,例如“foo”,此代码完美运行。

我该怎么做才能以这种方式加载具有 unicode 名称的证书?

0 投票
1 回答
6809 浏览

java - 在 JUnit 中生成 HmacSHA256 签名

我正在尝试将我的消息签名到 Amazon AWS(在 JUnit 测试中),但我遇到了一个问题。这是我正在使用的代码:

在标记为 ( mac.init(...)) 的行中,java 抛出异常:

你知道为什么会这样吗?我在网上看到的所有代码看起来几乎都是这样,我也尝试了 HmacSHA1,结果相同。

0 投票
2 回答
543 浏览

iphone - AES解密不起作用请帮助

我正在程序中进行 AES 加密和解密。我解密时无法获得纯文本。我的代码如下...

0 投票
1 回答
263 浏览

c - 是否可以重用 CryptVerifySignature() 哈希对象?

MSDN 说,在CryptVerifySignature()你不能重用HCRYPTHASH对象来尝试散列更多数据之后,它说你需要用CryptDestroyHash()and重新创建它CryptCreateHash()重用真的失败了。

任何人都熟悉可以保存这些电话的黑客,还是真的不可能?

0 投票
1 回答
2099 浏览

c++ - 将证书链获取到私有根

我正在尝试验证来自签名链的证书是否返回到Windows信任的特定根证书(它是应用程序的私有证书)。

我目前这样做的尝试涉及创建一个链接引擎,它只信任我想要的特定证书作为根,因此不能生成其他链。

(为清楚起见,省略了错误检查;pCertContext并且hStore来自从CryptQueryObject签名的二进制文件中提取签名和相关证书。)

不幸的是,这似乎不起作用。尽管使用了自定义链接引擎,但它似乎仍在搜索 OS 存储,并且要么找不到链,要么找到一个到不同的根(操作系统信任)。我只能通过将我的私有根证书添加到操作系统受信任的存储中来获得我想要的链。

我也尝试设置config.hRestrictedOther为空的内存存储,因为文档建议使用hRestrictedTrust非 NULL 将再次引入系统存储,但这没有任何区别。

有什么我错过的,或者更好的方法吗?

编辑:只是为了提供更多上下文,我正在尝试做一些类似于驱动程序签名证书的事情,其中​​签名证书链回两个不同的根:一个受操作系统信任的标准 CA 根和一个内部根(在驱动程序也受操作系统信任,但在我的情况下,只会受我的应用程序信任)。十字架出现在“主”链的中间位置;可能有许多不同的文件都使用不同的“真实”CA 签名,但仍链接回我的内部证书。