Mam pewien problem.
Posiadam urządzenie które po podłączeniu do komputera automatycznie dodaje certyfikat do systemu windows, certyfikat ten jest widoczny w magazynie certyfikatów, bieżącego użytkownika jako certyfikat osobisty.

Chcę odczytać ten certyfikat za pomocę javy oto mój kawałek kodu:

  
```java
 {
  KeyStore keyStore = null;
  PrivateKey privateKey = null;
  X509Certificate certificate = null;
  String alias = "TEST";
  char[] password = "1234".toCharArray();
  byte[] data = "Do podpisania".getBytes();
  String aliasCode = null;
  try 
   {
        keyStore = KeyStore.getInstance("WINDOWS-MY", "SunMSCAPI");
	System.out.println("ks provider=" + keyStore.getProvider().getInfo());
	keyStore.load(null,null);
	
	Enumeration en = keyStore.aliases() ;
	while (en.hasMoreElements()) 
	{
	 String aliasKey = (String)en.nextElement() ;
	 Certificate c = aKeyStore.getCertificate(aliasKey) ;
	 System.out.println("---> alias: " + aliasKey) ;
	 if (aKeyStore.isKeyEntry(aliasKey)) 
	  {
	   Certificate[] chain = aKeyStore.getCertificateChain(aliasKey);
	   System.out.println("---> chain length: " + chain.length);
	   for (Certificate cert: chain) 
	    { System.out.println(cert); }
	  }
	}
	
 }

Po uruchomieniu otrzumuję tylko takie komunikaty:
init() OS=Windows XP, Java=1.7.0_11
ks provider=Sun's Microsoft Crypto API provider

Nie widzę w ogóle certyfikatu który normalnie z narzędzi Windows-a widzę w certyfikatach osobistych użytkownika. 
Jeżeli w kodzie zmienię WINDOWS-MY na WINDOWS-ROOT otrzymam całą listę certyfikatów które znajdują się w dwóch innych  magazynach certyfikatów Windows ale ciągle nie widzę certyfikatu osobistego użytkownika.

Czy ktoś może podpowiedzieć co robię nie tak ?