Java Applet Windows-我的密钥库 PrivateKey getEncoded 为空
Java Applet Windows-MY keystore PrivateKey getEncoded is null
根据我对 documentation 的理解,应该可以通过服务 "Windows-MY"
访问 Microsoft Windows KeyStore。
当我从 keyStore 加载 PrivateKey 时,我得到 null
for privateKey.getEncoded()。
如何从 Windows 密钥库正确访问私钥?
尝试访问它:
KeyStore ks = KeyStore.getInstance("Windows-MY");
ks.load(null);
PrivateKey privateKey = (PrivateKey) ks.getKey("myKeyAlias", null);
System.out.println("privateKey:" + privateKey));
System.out.println("getEncoded:" + privateKey.getEncoded());
我得到的输出:
privateKey:RSAPrivateKey [size=2048 bits, type=Exchange, container=myKeyAlias]
getEncoded:null
使用 JRE 1.8 并通过 Win7 和 8.1 测试
MSCAPI 好像不支持私钥导出。
首先,Key.getEncoded()
javadoc 指定:
Returns the key in its primary encoding format, or null if this key does not support encoding.
如果您查看 source code of the Java crypto provider for MSCAPI,getEncoded()
方法实际上在所有情况下 returns null
。
根据我对 documentation 的理解,应该可以通过服务 "Windows-MY"
访问 Microsoft Windows KeyStore。
当我从 keyStore 加载 PrivateKey 时,我得到 null
for privateKey.getEncoded()。
如何从 Windows 密钥库正确访问私钥?
尝试访问它:
KeyStore ks = KeyStore.getInstance("Windows-MY");
ks.load(null);
PrivateKey privateKey = (PrivateKey) ks.getKey("myKeyAlias", null);
System.out.println("privateKey:" + privateKey));
System.out.println("getEncoded:" + privateKey.getEncoded());
我得到的输出:
privateKey:RSAPrivateKey [size=2048 bits, type=Exchange, container=myKeyAlias]
getEncoded:null
使用 JRE 1.8 并通过 Win7 和 8.1 测试
MSCAPI 好像不支持私钥导出。
首先,Key.getEncoded()
javadoc 指定:
Returns the key in its primary encoding format, or null if this key does not support encoding.
如果您查看 source code of the Java crypto provider for MSCAPI,getEncoded()
方法实际上在所有情况下 returns null
。