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 ?