如何使SignerSignEx2使用机器密钥存储而不是用户密钥存储?

本文关键字:存储 用户密钥 密钥 SignerSignEx2 何使 机器 | 更新日期: 2023-09-27 18:06:45

我目前正试图使用SignerSignEx2函数与Authenticode签署DLL。为此,我创建了一个私钥并将其放入机器密钥存储库(因此文件将存储在C:'ProgramData'Microsoft'Crypto'RSA'MachineKeys中)。

不幸的是,似乎SignerSignEx2函数只在用户存储中查找密钥(当我将密钥放入用户存储时(以便文件存储在C:'Users{user}'AppData'Roaming'Microsoft'Crypto'RSA{user-id})它工作正常)。

有没有人知道一种方法来调用SignerSignEx2这样一种方式,它使用机器密钥存储而不是用户存储?

本质上功能应该类似于CspParameters类,允许使用CspProviderFlags。使用UseMachineKeyStore来控制使用哪个密钥存储

如何使SignerSignEx2使用机器密钥存储而不是用户密钥存储?

我相信在打开证书存储时需要CERT_SYSTEM_STORE_LOCAL_MACHINE标志来获得所需的内容。