问题标签 [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.
c# - CertOpenStore“内存”返回文件未找到
下面的代码曾经工作。我认为它在一些 .NET Framework 或 Windows 10 升级后坏了,但不确定。
它会打开一个临时证书存储以生成自签名证书。
输出是:
这是ERROR_FILE_NOT_FOUND
。在 .NET4.5
和4.5.2
.
我可以做些什么来进一步诊断或修复?
c++ - 获取从 CryptDeriveKey() 生成的会话密钥
我正在使用加密库,并且正在尝试使用这些库创建一个简单的密码算法。我使用 MSDN 的Deriving a Session Key from a Password通过传入“用户名”来生成密钥,但我不确定如何取回密钥以针对我的算法进行测试。该算法采用上面传递的用户名和生成的密钥。我尝试使用CryptDeriveKey
,CryptGetKeyParam
但它没有返回密钥。
这还能如何实现?
c++ - 生成 RSA-2048 密钥(公共和私有)
我正在做简单的实现 RSA-2048。我在另一个论坛上找到了一些代码。
因此,加密\解密工作得非常好。我需要换钥匙。如何生成此代码的密钥?
我试过这个在线生成器,但它不起作用。 https://travistidwell.com/jsencrypt/demo/ 和其他在线生成器
c++ - 函数 CryptEncrypt 期间崩溃
我正在编写将生成 RSA 密钥对、导出\导入密钥和加密字符串的小程序。所以,我写了这段代码:
CryptEncrypt 以崩溃结束。我不知道我应该怎么做才能解决这个问题。
c - 验证签名的 PE 文件
(对不起我的英语不好。)我的代码有一些问题。所以我会尝试解释我的问题。我有一个带有签名(pkcs7)的简单 exe 文件。我想验证这个文件(没有互联网连接)。我不想使用WinVerifyTrust()
,因为我想知道 windows 如何验证 PE 文件。我写了一些代码,首先CryptQueryObject()
用 BLOB_DATA(映射的 pe 文件)调用,它工作正常。然后我可以获得证书信息:签名者、序列号等(带有CryptGetMsgParam()
),它也可以正常工作;但是,当我去验证它时,CertGetCertificateChain()
我得到了错误。那么,你能帮我解决这个问题吗,我认为是我没有CertGetCertificateChain()
正确使用?
c++ - 无法为 AES 加密创建上下文。视窗
我已经制作了这样的代码,它将为 aes 加密创建上下文(支持 Win32API):
它在 Windows 7 或更高版本上运行良好,但是当我在 Windows XP 上启动它时,我没有收到任何错误,只是关闭了应用程序。没事了。怎么了?
c++ - 使用winapi函数生成密钥时数据泄漏
我有一个问题:当我尝试生成 AES 密钥 128 长度时,CryptGenKey
我有数据泄漏?
下面的代码:
delete[] aes_key_dec;
无法帮助我解决这个问题。怎么了 :/
c++ - Wincrypto (CNG):无法使用任何 CNG 算法创建证书
我正在编写一个可以在证书存储中创建证书的代码,并且我正在使用 CNG。其实不是真的在写,而是改编自 MSDN 的一个例子。我的代码可以编译,它为某些算法创建密钥,但这些密钥都不能用于创建证书。对于大多数人来说,它说“未知的密码算法”。
这是我的代码的一部分,它尝试所有可用的算法并为每个算法创建一个密钥和证书:
我从这里得到的算法列表。
以下是所有尝试过的算法的错误输出:
也许我只是在滥用新的 API?使用旧的 wincrypt32 时效果很好。
c++ - UWP 应用程序证书存储在哪里?我在 wincrypt 函数中看不到它们
我正在尝试从同一应用程序中的托管 C++ DLL 访问使用 C# UWP 应用程序创建的证书。但是我不能使用 C# 接口,因为我需要在这个套接字上支持 SNI(据我所知,UWP 不支持我可以找到的文档化方式的 SNI;相信我,我已经搜索过了。我应该另请注意,这是 TCP,而不是 HTTPS)。
我试图以“正常”wincrypt方式查找UWP创建的证书,即枚举证书存储(::CertEnumSystemStore)然后枚举证书(::CertEnumCertificatesInStore),以及查看certmgr和certutils,但不能在任何地方都可以找到证书。这让我相信每个应用程序的证书都被封锁在他们自己的孤岛中,并且只能通过 UWP API 访问,这不允许自定义控制 AcquireCredentialsHandle 的调用方式。
所以我的问题是,有没有办法使用标准操作系统加密调用访问使用 UWP 创建的证书?
c++ - Microsoft CryptoApi - 创建由根授权证书签名的新证书
我正在尝试通过临时根 CA 签署公钥/私钥对,接下来是以下步骤:
- 创建自签名根授权证书 (
CertCreateSelfSignCertificate
) (完成) - 生成公钥/私钥对 (
CryptGenKey
) (完成) - 通过根授权证书( TODO )签署公钥/私钥对(我一直在尝试使用
CertCreateSelfSignCertificate
函数,但似乎不可能......)
我一直在按照下一个链接中提到的步骤进行操作: link
使用 powershell 可以正常工作,但我不知道如何使用 Microsoft CryptoApi C++ 来实现它。示例 Powershell:
目前,我获得了没有私钥的证书,那么如何为我的签名证书分配私钥?我当前的代码如下所示:
有什么办法吗?