1 2 18 package com.sun.org.apache.xml.internal.security.keys.storage.implementations; 19 20 21 22 import java.security.KeyStore ; 23 import java.security.KeyStoreException ; 24 import java.security.cert.X509Certificate ; 25 import java.util.Enumeration ; 26 import java.util.Iterator ; 27 28 import com.sun.org.apache.xml.internal.security.keys.storage.StorageResolverException; 29 import com.sun.org.apache.xml.internal.security.keys.storage.StorageResolverSpi; 30 31 32 38 public class KeyStoreResolver extends StorageResolverSpi { 39 40 41 KeyStore _keyStore = null; 42 43 44 Iterator _iterator = null; 45 46 52 public KeyStoreResolver(KeyStore keyStore) throws StorageResolverException { 53 this._keyStore = keyStore; 54 this._iterator = new KeyStoreIterator(this._keyStore); 55 } 56 57 58 public Iterator getIterator() { 59 return this._iterator; 60 } 61 62 68 class KeyStoreIterator implements Iterator { 69 70 71 KeyStore _keyStore = null; 72 73 74 Enumeration _aliases = null; 75 76 82 public KeyStoreIterator(KeyStore keyStore) 83 throws StorageResolverException { 84 85 try { 86 this._keyStore = keyStore; 87 this._aliases = this._keyStore.aliases(); 88 } catch (KeyStoreException ex) { 89 throw new StorageResolverException("generic.EmptyMessage", ex); 90 } 91 } 92 93 94 public boolean hasNext() { 95 return this._aliases.hasMoreElements(); 96 } 97 98 99 public Object next() { 100 101 String alias = (String ) this._aliases.nextElement(); 102 103 try { 104 return this._keyStore.getCertificate(alias); 105 } catch (KeyStoreException ex) { 106 return null; 107 } 108 } 109 110 114 public void remove() { 115 throw new UnsupportedOperationException ( 116 "Can't remove keys from KeyStore"); 117 } 118 } 119 120 126 public static void main(String unused[]) throws Exception { 127 128 KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); 129 130 ks.load( 131 new java.io.FileInputStream ( 132 "data/com/sun/org/apache/xml/internal/security/samples/input/keystore.jks"), 133 "xmlsecurity".toCharArray()); 134 135 KeyStoreResolver krs = new KeyStoreResolver(ks); 136 137 for (Iterator i = krs.getIterator(); i.hasNext(); ) { 138 X509Certificate cert = (X509Certificate ) i.next(); 139 byte[] ski = 140 com.sun.org.apache.xml.internal.security.keys.content.x509.XMLX509SKI 141 .getSKIBytesFromCert(cert); 142 143 System.out.println(com.sun.org.apache.xml.internal.security.utils.Base64.encode(ski)); 144 } 145 } 146 } 147 | Popular Tags |