Можно ли прочитать действительный закрытый ключ из хранилища ключей Windows, такого как Windows-MY, Windows-ROOT в java? Я могу прочитать закрытый ключ из других хранилищ, например: pkcs12 (.pfx, .p12), pkcs11, jks (.jks), jceks. Я пробовал что-то вроде этого, но это отлично работает для других хранилищ ключей, но Windows-MY и Windows-ROOT возвращают недействительный и ненулевой закрытый ключ.
NB: здесь закрытый ключ и открытый ключ в цепочках являются допустимой парой ключей.
final char[] keyPass = "test1234".toCharArray();
X509Certificate[] chains=......;
KeyStore sourceKeyStore = KeyStore.getInstance("Windows-MY");
sourceKeyStore.load("null", keyPass);
Enumeration<String> sAliases = sourceKeyStore.aliases();
while (sAliases.hasMoreElements()) {
String alias = sAliases.nextElement();
Key privKey = sourceKeyStore.getKey("testName", keyPass); // privKey is not null here but misses some information
sourceKeyStore.setKeyEntry("testName", privKey, keyPass, chains); //gives Key protection algorithm not found error
}