使用KSP / CNG登录Java

问题描述 投票:0回答:1

如何使用Windows KeyStore签名数据?

如果Windows密钥库中存储了密钥,则可以使用KeyStore keyStore = KeyStore.getInstance("Windows-MY");访问Windows密钥库,然后获取给定别名的密钥参考。或者,我可以在keyStoreSpi对象上使用反射来访问其条目,X509Certificate对象和PrivateKey对象,并使用它对某些数据进行签名。此方法仅允许获取密钥参考,然后在签名时使用它。

Windows密钥库中的证书后面有密钥存储提供程序(KSP)。我正在使用的是自定义密钥存储提供程序(不是我自己制作的,不知道它是如何工作的,它做什么或不做什么)。

现在,是否可以使用其证书在Windows KeyStore中引用但通过KSP提供给Windows KeyStore的密钥进行签名? (密钥本身存储在HSM中)

编辑:更正了术语,使文本有意义。

java cryptography keystore cng
1个回答
0
投票

[确定,我发现Java 8中的Java SunMSCAPI提供程序(我在问题中没有提到..)不支持KSP(也称为CNGCAPI2)。它仅支持Crypto API(CAPI)。我要签名的密钥由CNG提供程序提供。因此,Java 8不支持它,但Java 13https://bugs.openjdk.java.net/browse/JDK-8026953

应该支持它
© www.soinside.com 2019 - 2024. All rights reserved.