@SuppressWarnings("rawtypes")
	public Set<String> getServiceProviderFor(String type)
	{
		Set<String> result = new HashSet<String>();

		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]; //$NON-NLS-1$

				if (key.startsWith(type + ".")) //$NON-NLS-1$
				{
					result.add(key.substring(type.length() + 1));
				} else if (key.startsWith(ALG_PARSE_STRING + type + ".")) //$NON-NLS-1$
				{
					// This is an alias
					result.add(key.substring(type.length() + 11));
				}
			}
		}
		return result;
	}