![]() |
The Java Developers Almanac 1.4Order this book from Amazon. |
e194. Listing All Available Cryptographic ServicesThe providers of cryptographic services such as key generation algorithms, register their services with theSecurity class. A
service is represented by a name of the form:
service-type.service-implementationAn example of a service entry is SecureRandom.SHA1PRNG .
// This method returns all available services types public static String[] getServiceTypes() { Set result = new HashSet(); // All all providers Provider[] providers = Security.getProviders(); for (int i=0; i<providers.length; i++) { // Get services provided by each provider Set keys = providers[i].keySet(); for (Iterator it=keys.iterator(); it.hasNext(); ) { String key = (String)it.next(); key = key.split(" ")[0]; if (key.startsWith("Alg.Alias.")) { // Strip the alias key = key.substring(10); } int ix = key.indexOf('.'); result.add(key.substring(0, ix)); } } return (String[])result.toArray(new String[result.size()]); } // This method returns the available implementations for a service type public static String[] getCryptoImpls(String serviceType) { Set result = new HashSet(); // All all providers Provider[] providers = Security.getProviders(); for (int i=0; i<providers.length; i++) { // Get services provided by each provider Set keys = providers[i].keySet(); for (Iterator it=keys.iterator(); it.hasNext(); ) { String key = (String)it.next(); key = key.split(" ")[0]; if (key.startsWith(serviceType+".")) { result.add(key.substring(serviceType.length()+1)); } else if (key.startsWith("Alg.Alias."+serviceType+".")) { // This is an alias result.add(key.substring(serviceType.length()+11)); } } } return (String[])result.toArray(new String[result.size()]); }Here's a sample list of service types: AlgorithmParameterGenerator AlgorithmParameters CertPathBuilder CertPathValidator CertStore CertificateFactory Cipher GssApiMechanism KeyAgreement KeyFactory KeyGenerator KeyManagerFactory KeyPairGenerator KeyStore Mac MessageDigest SSLContext SecretKeyFactory SecureRandom Signature TrustManagerFactory
e195. Listing All Available Secure Random Number Generators e196. Generating a Secure Random Number
© 2002 Addison-Wesley. |