// -----------------------------------------------------------------------------
// ListAvailableCryptographicServices.java
// -----------------------------------------------------------------------------
/*
* =============================================================================
* Copyright (c) 1998-2011 Jeffrey M. Hunter. All rights reserved.
*
* All source code and material located at the Internet address of
* http://www.idevelopment.info is the copyright of Jeffrey M. Hunter and
* is protected under copyright laws of the United States. This source code may
* not be hosted on any other site without my express, prior, written
* permission. Application to host any of the material elsewhere can be made by
* contacting me at jhunter@idevelopment.info.
*
* I have made every effort and taken great care in making sure that the source
* code and other content included on my web site is technically accurate, but I
* disclaim any and all responsibility for any loss, damage or destruction of
* data or any other property which may arise from relying on it. I will in no
* case be liable for any monetary damages arising from such loss, damage or
* destruction.
*
* As with any code, ensure to test this code in a development environment
* before attempting to run it in production.
* =============================================================================
*/
import java.security.Provider;
import java.security.Security;
import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
/**
* -----------------------------------------------------------------------------
* The providers of cryptographic services such as key generation algorithms,
* register their services with the Security class. A service is
* represented by a name of the form:
*
* service-type.service-implementation
*
* An example of a service entry is:
* SecureRandom.SHA1PRNG
* -----------------------------------------------------------------------------
* @version 1.0
* @author Jeffrey M. Hunter (jhunter@idevelopment.info)
* @author http://www.idevelopment.info
* -----------------------------------------------------------------------------
*/
public class ListAvailableCryptographicServices {
/**
* This method returns all available services types.
* @return String[] object that is a list of all available
* service types.
*/
private static String[] getServiceTypes() {
Set result = new HashSet();
// All providers
Provider[] providers = Security.getProviders();
for (int i=0; iString[] object that is a list of all available
* service type implementations.
*/
private static String[] getCryptoImpls(String serviceType) {
Set result = new HashSet();
// All providers
Provider[] providers = Security.getProviders();
for (int i=0; i