问题标签 [wincrypt]

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 投票
1 回答
643 浏览

c++ - 我在 certcreatecertificatechainengine func 上收到 0x80070057 错误代码

我使用 Visual Studio 2013 和 Windows 7 32 位。

我想通过根证书和证书链来验证数字签名。

所以我在 certcreatecertificatechainengine() 中得到 0x80070057 错误代码。

我也看到这个帖子:

类似的问题

和别的

但我找不到解决方案。

0 投票
1 回答
234 浏览

c - wincrypt 中弃用的函数

一个功能,特别CryptExportPKCS8是被弃用是什么意思? https://msdn.microsoft.com/en-us/library/windows/desktop/aa379932(v=vs.85).aspx

我知道人们不能将它与较新版本一起使用,wincrypt只是因为它不存在于头文件中,但是基于旧的程序仍然可以wincrypt.hcrypt32.libWindows 10 的证书存储中检索私钥吗?或者如果不使用更新的 API 就不可能访问这些数据?

0 投票
1 回答
407 浏览

c - 如何获得链中的下一个证书

我想从 Windows 证书存储(假设我知道最终证书的位置)获取父证书(或所有证书链)。我需要获取每一个以构建我自己的自定义X509_STORE(使用OpenSSL)。

我认为正确的做法是:

  1. CertFindCertificateInStore使用(完成)获得第一个证书
  2. CertGetCertificateChain使用(完成)获取证书链
  3. 从链中提取证书(?)
  4. 对于链中的每个证书,使用d2i_X509(done)转换它

或者

  1. CertFindCertificateInStore使用(完成)获得第一个证书
  2. 获取父证书(如果存在)(?)
  3. 使用 转换它d2i_X509,转到 2。(完成)

然后创建商店。

那么要回答的问题是 - 如何使用 Windows 证书存储获取父证书或链中的所有证书?我可能在这里或多或少地遗漏了一些神秘的功能。

0 投票
1 回答
334 浏览

c++ - 如何禁用由 Wincrypt API 完成的加密

我想禁用在 Wincrypt API 中加密的加密。
请给我建议,如何做到这一点,也欢迎一般建议
以下是来自 EncryptedMessage.cpp 的代码示例:

从下面的另一个类中截取的有用代码:

0 投票
0 回答
1286 浏览

c++ - CryptEncrypt() 函数

我是 C++ 的新手,昨天开始学习 wincrypt。我写了这段代码,

我被困在 CryptEncrypt 函数上。我阅读了 MSDN 页面,在“hKey, 0, True, 0”之后没有理解任何内容。例如,向我解释一下“指向包含要加密的明文的缓冲区的指针”是什么。先感谢您!

0 投票
0 回答
381 浏览

python - 使用 pycrypto 将 C++ 中的 AES 加密代码转换为 python

我正在学习 python 并尝试将上面在网上找到的代码片段转换为 python。

据我了解,以下代码是根据密码“Microsoft”的 SHA1 哈希生成会话密钥,但我不确定如何根据 python 中密码的哈希导出 AES 256 密钥。当我使用时AES.new()IV在这种情况下应该是什么?16 个随机字节?

0 投票
1 回答
194 浏览

c++ - 将用户名和密码传递给 CryptRetrieveTimeStamp 函数

我正在尝试使用CryptRetrieveTimeStamp从 TSA 检索时间戳。

我可以从这个答案中找到的一些免费服务中获得它,但总是使用TIMESTAMP_NO_AUTH_RETRIEVAL标志。

但是现在我想使用使用凭据的付费服务,我无法弄清楚如何使用用户名和密码来获取它。

有谁知道如何使用 CryptRetrieveTimeStamp 向 TSA 发送用户名和密码?

0 投票
1 回答
1831 浏览

c++ - CryptEncrypt 不加密整个文本

我正在尝试使用 wincrypt 加密短信。然而,我的代码是不可预测的。它不会加密/解密整个明文,而只是其中的一部分。如果我更改密码的长度(例如“password123”),它会加密/解密不同数量的字符。这是我的代码。

提前感谢您的帮助!

0 投票
2 回答
1842 浏览

c - CTR-AES256 加密与 OpenSSL -aes-256-ctr 不匹配

我的问题是我无法从下面的 C 代码中获取 AES 256 CTR 输出来匹配下面的 OpenSSL 命令的输出。

C 代码产生这个:

OpenSSL 命令行产生这个:

注意前 16 个字节是相同的,因为 nonceIV 是相同的,但是,当 nonceIV 在下一次迭代中更新时,然后与明文进行异或,接下来的 16 个字节不同等等......?

我不明白为什么会这样?任何人都知道为什么在第一个 16 字节块之后十六进制代码不同?

免责声明:我不是 C 专家。

谢谢!!

狐狸.txt

然后运行以下 OpenSSL 命令来创建 foxy.exe

这是foxy.exe包含的内容:

这是代码。

我能够通过 M$ CryptEncrypt() 备注部分https://msdn.microsoft.com/en-us/library/windows/desktop/aa379924(v=vs.85).aspx上的建议伪代码来完成这项工作:

这是添加了两个新行的更新代码:

0 投票
0 回答
123 浏览

c++ - 编译时出错(Sublime/Visual Studio)

我在 Windows 10 x64 上使用带有 g++ 的 Sublime Text 3 (build 3126) 来编译我的 c++。到目前为止,我的代码是:

但是当我编译时,我得到了错误

wincrypt.h:没有这样的文件或目录。

我也尝试过使用 Visual Studio 2015,但是当我构建它时总是给我错误

无法打开包含文件:'stdio.h':没有这样的文件或目录

任何帮助表示赞赏,谢谢。