/* * GetJavaKeystore.java * * Created on 15. November 2006, 22:57 * This File is part of PortableSigner (http://portablesigner.sf.net/) * and is under the European Public License V1.1 (http://www.osor.eu/eupl) * (c) Peter Pflaeging <peter@pflaeging.net> * */ package net.pflaeging.PortableSigner; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.util.NoSuchElementException; import java.util.Enumeration; /** * * @author pfp */ public class GetJavaKeystore { public String[] aliases = new String[64]; private KeyStore ks = null; /** Creates a new instance of GetJavaKeystore */ public GetJavaKeystore(String keystore, String password) { FileInputStream fis = null; try { ks = KeyStore.getInstance("jks"); fis = new FileInputStream(keystore); ks.load(fis, password.toCharArray()); } catch (NoSuchAlgorithmException e) { Main.setResult( "Beim Lesen des Zertifikates trat ein Fehler auf (Algorithmus)!", true, e.getLocalizedMessage()); } catch (CertificateException e) { Main.setResult( "Beim Lesen des Zertifikates trat ein Fehler auf (Zertifikatsfehler)", true, e.getLocalizedMessage()); } catch (FileNotFoundException e) { Main.setResult( "Beim Lesen des Zertifikates trat ein Fehler auf (Datei nicht zugreifbar)", true, e.getLocalizedMessage()); } catch (IOException e) { Main.setResult( "Beim Lesen des Zertifikates trat ein Fehler auf (EA Fehler)", true, e.getLocalizedMessage()); } catch (KeyStoreException e) { Main.setResult( "Beim Lesen des Zertifikates trat ein Fehler auf (Datei nicht zugreifbar)", true, e.getLocalizedMessage()); } finally { try { if (fis != null) { fis.close(); } } catch (IOException e) { // ignore or print a message } } if (ks != null) { String alias = ""; try { int count = 0; for (Enumeration<?> aliasKey = ks.aliases(); aliasKey.hasMoreElements();) { String key = aliasKey.nextElement().toString(); String name = ks.getCertificate(key).toString(); if (ks.isKeyEntry(key) && count < aliases.length) { aliases[count] = key; System.out.println("Key#" + count + " " + key); count++; } } } catch (NoSuchElementException e) { Main.setResult( "Beim Lesen des Zertifikates trat ein Fehler auf (Keine Schluessel)", true, e.getLocalizedMessage()); } catch (KeyStoreException e) { Main.setResult( "Beim Lesen des Zertifikates trat ein Fehler auf (Datei nicht zugreifbar)", true, e.getLocalizedMessage()); } } } }