问题标签 [mscapi]

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 回答
256 浏览

java - 使用 SunMSCAPI 签署预先创建的摘要

摘要在一台服务器上创建并传递到另一台服务器以使用令牌/加密狗进行签名。密码 API 可与 PKCS11 prvoider 一起正常工作。

但是,当使用 SunMSCAPI 提供程序的密码 API 时,私钥被视为公钥,既不询问令牌密码,生成的签名验证也失败。同样使用带有私钥的密码也不是正确的方法(也在此处讨论 - https://bugs.openjdk.java.net/browse/JDK-7050158)。

如何在避免再次创建摘要的同时使用 Signature API?“NONEWithRSA”收到的输出不正确,因为我的摘要是“Sha-256”并且签名验证将失败。

0 投票
0 回答
327 浏览

smartcard - 在自定义 CSP 中实现 CPAcquireContext

我们想开发定制的加密服务提供者(CSP)。为此,我们指的是以下链接

https://msdn.microsoft.com/en-us/library/windows/desktop/aa380245%28v=vs.85%29.aspx

从文档中,我们了解到自定义 CSP 需要实现以下加密功能。

  1. CPAcquireContext
  2. CPCreateHAsh
  3. CPDecrypt 等,如以下链接中所述

https://msdn.microsoft.com/en-us/library/ms925441.aspx

根据此链接, CPAcquireContext 函数采用以下参数

但是我们没有找到有关 CPAcquireContext 或链接中提到的任何其他入口点的实现的任何进一步信息(例如需要对这些参数做什么以及如何填充 HCRYPTPROV 结构)。

是否有任何其他文件详细解释了这部分?任何人都可以在开发这些功能方面提供进一步的帮助。

0 投票
0 回答
652 浏览

c++ - NCryptExport AES 密钥

我不知道我是否遗漏了什么,我正在尝试将遗留代码移动到 Ngen,我必须使用 Key Storage Provider aka NCrypt

我正在做一些测试以尝试导出 AES 密钥,我发现的第一件事是 NCryptExport 假设最好的方法是使用 pkcs7 导出密钥并假设如果我将导出密钥放在第二个参数中,那么这将是用于 pkc7 代码的密钥我收到错误 NTE_INVALID_PARAMETER

如果我尝试将 NCryptExport 与 NCRPT_OPAQUETRANSPORT_KEY 一起使用,我会得到 NTE_INVALID_KEY_STATE 类似的代码

0 投票
1 回答
680 浏览

java - SunMSCAPI 不返回任何证书

我们正在尝试使用 SunMSCAPI 从 Windows 证书存储中检索证书。我创建了一个非常简单的示例来加载密钥库并列出可用的别名。但是,即使我在密钥库中看到两个个人证书,代码也没有列出任何内容。

顺便说一下,在我自己的系统上它工作得很好,但在我们将使用的实际应用程序服务器上,它没有列出任何东西。

下面是我正在使用的代码

以及应用服务器上证书存储的屏幕截图。如您所见,我希望列出两个别名(但也许我在寻找错误的位置?): 在此处输入图像描述

0 投票
1 回答
915 浏览

java - 如何使用 Java KeyStore 在 Windows 商店中加载私钥

我正在处理这个 Java 项目,我需要使用提供程序 SunMSCAPI 从 Windows KeyStore 加载私钥,但我根本不提供任何密码,我不知道是否需要这样做。这是我正在做的示例测试用例:

当我运行它时,我得到了一些我之前使用 Adob​​e Reader 从 pfx 文件中导入的证书,但是我无法获得与该证书对应的私钥,相反,我只是得到空值。

围绕这个问题有什么帮助吗?提前致谢

0 投票
1 回答
166 浏览

java - 如何使用 mscapi.RSAPrivateKey 进行 JWT 签名?

我不知道如何问这个问题,但我正在尝试使用来自网络的各种 Json Web Token 实现(无论是 java-jwt 还是 jjwt 等),它们都将 aRSAPrivateKey作为签名过程的一部分。

但是我遇到的问题是,显然mscapi.RSAPrivateKey没有提供与 the 相同的 API java.security.interfaces.RSAPrivateKey,当我尝试为其编写包装类时,我不知道如何编写 thegetEncoded或 the getFormat(我猜我应该返回“RS256”或类似的东西)功能。

  1. 我该如何包装mscapi.RSAPrivateKey
  2. mscapi.RSAPrivateKey转换为的正确方法是java.security.interfaces.RSAPrivateKey什么?
0 投票
1 回答
161 浏览

c# - Microsoft CAPI 在使用 SHA256 时返回 NTE_BADKEYSET

我在 HSM 中有我的私钥,我正在使用 Microsoft CAPI (SignerSignEx) 对文件进行签名。如果能够成功生成 sha1 签名,但如果我尝试在我的 hsm SignerSignEx() 上使用相同的证书和相同的密钥生成 sha256 签名,则返回 -2146893802。(NTE_BAD_KEYSET) 。我不确定出了什么问题。我的私钥存储在 HSM 上的 CSP 容器中。

0 投票
1 回答
1054 浏览

java - 如何为 Excel 和 JPG 文件添加数字签名?

我正在使用以下代码生成数字签名并将其添加到 Excel 文件中:

这里的私钥是 java.security.mscapi.rsaprivatekey。

修复所有版本兼容性问题后,我遇到以下错误,

sun.security.mscapi.RSAPrivateKey 类型的指定密钥不是 RSAPrivateKey

0 投票
1 回答
457 浏览

sql-server - EKM 是否与 CNG 密钥存储提供商合作?

https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/extensible-key-management-ekm说:

SQL Server 与可扩展密钥管理 (EKM) 一起提供数据加密功能,使用 Microsoft Cryptographic API (MSCAPI) 提供程序进行加密和密钥生成。

这是否意味着 EKM 只能与 MSCAPI(旧 CSP)一起使用,而不能与新的 CNG 密钥存储提供程序一起使用?

0 投票
0 回答
5094 浏览

active-directory - 如何将“Microsoft Enhanced RSA and AES Cryptographic Provider”与 Microsoft Active Directory 证书服务一起使用?

我想设置 Microsoft Active Directory 证书服务以使用“ Microsoft Enhanced RSA and AES Cryptographic Provider ”。目标:在 VirtualBox 上运行的 Windows 2016 服务器数据中心版 x64。(也在 Win 2008 服务器 x64 上测试过)

“certutil -csplist”命令将此 CSP 显示为可用 CSP。这是 Cryptography Provider List 的 Registry 屏幕截图: Registry - Cryptography Provider List

在 AD CS 配置向导中:

在角色服务步骤,我选择了“认证机构”。在“CA 加密”步骤中,“选择加密提供程序”组合框中缺少“Microsoft 增强的 RSA 和 AES 加密提供程序”。此 CSP 支持 sha-256 算法。请注意:我不想使用 CNG 供应商。CSP 提供商列表截图:

背景资料:

我正在开发一个自定义 CSP(加密服务提供商)(不是 CNG)。我的 CSP 支持 sha-256,因此我需要将 CSP Provider Type 设置为“Type 024”(PROV_RSA_AES)。但似乎“AD CS 配置”跳过了类型为 024 的提供程序。如果我为我的自定义 CSP 指定“类型 001”(PROV_RSA_FULL),则“AD CS 配置”会在提供程序列表中显示我的 CSP,但在哈希算法中仅显示 sha1,并且我的 sha-256 算法丢失。似乎 AD CS 配置仅支持 CNG 提供程序的 sha-256 并跳过旧提供程序 sha-256 实施。

如何解决这个问题?如何在“AD CS 配置”中使用“Type 024”(PROV_RSA_AES)提供程序类型?

谢谢。