You can use the provider SunMSCAPIto create a local client key store. You can do this simply using this code:
KeyStore keyStore = KeyStore.getInstance("Windows-MY",new SunMSCAPI());
keyStore.load(null, null);
, , , getInstance():
SunMSCAPI providerMSCAPI = new SunMSCAPI();
Security.addProvider(providerMSCAPI);
KeyStore ks = KeyStore.getInstance("Windows-MY");
ks.load(null, null);
, , , java Windows.
, , , , :
package org.catcert.crypto.keyStoreImpl.windows;
import java.security.KeyStore;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Collections;
import sun.security.mscapi.SunMSCAPI;
public class Example {
public static void main(String args[]) throws Exception {
KeyStore keyStore = KeyStore.getInstance("Windows-MY",new SunMSCAPI());
keyStore.load(null, null);
ArrayList<String> aliases = Collections.list(keyStore.aliases());
for(String alias : aliases){
System.out.println("keyEntry alias: " + alias);
X509Certificate cert = (X509Certificate)keyStore.getCertificate(alias);
System.out.println("Certificate subject: " + cert.getSubjectDN());
}
}
}
, SunMSCAPI java 1.6, 64 java 1.7.