使用 ukey 上的密钥/证书对数据进行签名

Use key / certificate on ukey to sign data

我想从 ukey 获取证书,并签署数据。现在我可以搞定了,并且在一个控制台应用程序中成功了。但是当我将它作为 Internet Explorer 的 OCX 控件时,它就不起作用了。

当我使用以下函数时:

CryptAcquireContext(&hProvder, NULL, my_provder_name, PROV_RSA_FULL, 0)

失败,返回 nte_bad_keyset

当我使用 CRYPT_NEWKEYSETCRYPT_MACHINE_KEYSET 而不是 0 时,签名数据失败。

如何使用 ukey 创建签名?

CryptAcquireContext(&hProvder, NULL, my_provder_name, PROV_RSA_FULL, 0);

您想获取可能有助于为您的 file.In 桌面应用程序签名的 csp,您可以在浏览器中使用带有这些参数的函数 case.But,但不能。 我们想要获取与当前用户关联的默认密钥容器。但是,当创建证书时,它们可能会放置在默认容器以外的密钥容器中,因此默认容器不存在。 为什么? 问题似乎源于第二个参数。 因此,我们必须将密钥容器的名称指定为第二个参数。 像这样: CryptAcquireContext(&hProvder, container_name, my_provder_name, PROV_RSA_FULL, 0);