如何将密钥对导入到java中的密钥库,并使密钥不可导出

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

我正在为java中的Windows密钥库添加密钥对(私钥和证书)。我需要使私钥不可导出。执行此操作的Java代码可以导出私钥。我怎么能改变这个?

我没有找到任何可以更改它的属性或属性。 Keystore.store方法获取LoadStoreParameter,但它看起来像是设置私钥的密码。

PrivateKey privateKey=...;
Certificate certificate=...;

KeyStore keyStore = KeyStore.getInstance("Windows-MY");
keyStore.load(null);
keyStore.setKeyEntry("alias",privateKey,"".toCharArray(),new java.security.cert.Certificate[]{certificate});
java keystore private-key
1个回答
1
投票

访问Windows加密服务由SunMSCAPI提供程序管理。它提供了Java JCE API和Windows服务之间的桥梁。见documentation

SunMSCAPI提供程序使应用程序能够使用标准JCA / JCE API访问Microsoft Windows平台上的本机加密库,证书库和密钥容器。 SunMSCAPI提供程序本身不包含加密功能,它只是Java环境与Windows上的本机加密服务之间的管道。

SunMSCAPI中的WINDOWS-MY密钥库使用标准的Java KeyStore API,并且它没有定义任何类型的“可提取”属性,因此我担心您将无法建立它。

© www.soinside.com 2019 - 2024. All rights reserved.