问题标签 [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.
java - 使用 SunMSCAPI 签署预先创建的摘要
摘要在一台服务器上创建并传递到另一台服务器以使用令牌/加密狗进行签名。密码 API 可与 PKCS11 prvoider 一起正常工作。
但是,当使用 SunMSCAPI 提供程序的密码 API 时,私钥被视为公钥,既不询问令牌密码,生成的签名验证也失败。同样使用带有私钥的密码也不是正确的方法(也在此处讨论 - https://bugs.openjdk.java.net/browse/JDK-7050158)。
如何在避免再次创建摘要的同时使用 Signature API?“NONEWithRSA”收到的输出不正确,因为我的摘要是“Sha-256”并且签名验证将失败。
smartcard - 在自定义 CSP 中实现 CPAcquireContext
我们想开发定制的加密服务提供者(CSP)。为此,我们指的是以下链接
https://msdn.microsoft.com/en-us/library/windows/desktop/aa380245%28v=vs.85%29.aspx
从文档中,我们了解到自定义 CSP 需要实现以下加密功能。
- CPAcquireContext
- CPCreateHAsh
- CPDecrypt 等,如以下链接中所述
https://msdn.microsoft.com/en-us/library/ms925441.aspx
根据此链接, CPAcquireContext 函数采用以下参数
但是我们没有找到有关 CPAcquireContext 或链接中提到的任何其他入口点的实现的任何进一步信息(例如需要对这些参数做什么以及如何填充 HCRYPTPROV 结构)。
是否有任何其他文件详细解释了这部分?任何人都可以在开发这些功能方面提供进一步的帮助。
c++ - NCryptExport AES 密钥
我不知道我是否遗漏了什么,我正在尝试将遗留代码移动到 Ngen,我必须使用 Key Storage Provider aka NCrypt
我正在做一些测试以尝试导出 AES 密钥,我发现的第一件事是 NCryptExport 假设最好的方法是使用 pkcs7 导出密钥并假设如果我将导出密钥放在第二个参数中,那么这将是用于 pkc7 代码的密钥我收到错误 NTE_INVALID_PARAMETER
如果我尝试将 NCryptExport 与 NCRPT_OPAQUETRANSPORT_KEY 一起使用,我会得到 NTE_INVALID_KEY_STATE 类似的代码
java - 如何使用 Java KeyStore 在 Windows 商店中加载私钥
我正在处理这个 Java 项目,我需要使用提供程序 SunMSCAPI 从 Windows KeyStore 加载私钥,但我根本不提供任何密码,我不知道是否需要这样做。这是我正在做的示例测试用例:
当我运行它时,我得到了一些我之前使用 Adobe Reader 从 pfx 文件中导入的证书,但是我无法获得与该证书对应的私钥,相反,我只是得到空值。
围绕这个问题有什么帮助吗?提前致谢
java - 如何使用 mscapi.RSAPrivateKey 进行 JWT 签名?
我不知道如何问这个问题,但我正在尝试使用来自网络的各种 Json Web Token 实现(无论是 java-jwt 还是 jjwt 等),它们都将 aRSAPrivateKey
作为签名过程的一部分。
但是我遇到的问题是,显然mscapi.RSAPrivateKey
没有提供与 the 相同的 API java.security.interfaces.RSAPrivateKey
,当我尝试为其编写包装类时,我不知道如何编写 thegetEncoded
或 the getFormat
(我猜我应该返回“RS256”或类似的东西)功能。
- 我该如何包装
mscapi.RSAPrivateKey
? mscapi.RSAPrivateKey
转换为的正确方法是java.security.interfaces.RSAPrivateKey
什么?
c# - Microsoft CAPI 在使用 SHA256 时返回 NTE_BADKEYSET
我在 HSM 中有我的私钥,我正在使用 Microsoft CAPI (SignerSignEx) 对文件进行签名。如果能够成功生成 sha1 签名,但如果我尝试在我的 hsm SignerSignEx() 上使用相同的证书和相同的密钥生成 sha256 签名,则返回 -2146893802。(NTE_BAD_KEYSET) 。我不确定出了什么问题。我的私钥存储在 HSM 上的 CSP 容器中。
java - 如何为 Excel 和 JPG 文件添加数字签名?
我正在使用以下代码生成数字签名并将其添加到 Excel 文件中:
这里的私钥是 java.security.mscapi.rsaprivatekey。
修复所有版本兼容性问题后,我遇到以下错误,
sun.security.mscapi.RSAPrivateKey 类型的指定密钥不是 RSAPrivateKey
sql-server - EKM 是否与 CNG 密钥存储提供商合作?
SQL Server 与可扩展密钥管理 (EKM) 一起提供数据加密功能,使用 Microsoft Cryptographic API (MSCAPI) 提供程序进行加密和密钥生成。
这是否意味着 EKM 只能与 MSCAPI(旧 CSP)一起使用,而不能与新的 CNG 密钥存储提供程序一起使用?
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)提供程序类型?
谢谢。