-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Brian,
On 9/15/12 2:59 PM, Brian Braun wrote:
> Where can I get the list of all available ciphers for Sun JVM 6
> update 35?
Using Java 6u35, run this code (apologies for any poor word wrapping).
Enjoy,
- -chris
import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;
import java.security.Provider;
import java.security.Security;
import javax.net.ssl.SSLServerSocketFactory;
public class SSLInfo
{
public static void main(String[] args)
throws Exception
{
boolean enumeratedProviders = (null != args && 0 < args.length);
// Get SSL protocol info
Provider providers[];
if(enumeratedProviders)
{
providers = new Provider[args.length];
for(int i = 0; i < args.length; i++)
providers[i] = Security.getProvider(args[i]);
} else {
providers = Security.getProviders();
}
System.out.println("Supported SSL Protocols:");
boolean foundProtocol = false;
for(int i = 0; i < providers.length; i++)
{
Provider p = providers[i];
// Skip any providers that don't actually exist
if(null == p) continue;
ArrayList<String> keys = new ArrayList<String>();
// Grab only the String keys
for(Object o : p.keySet())
if(o instanceof String)
keys.add((String)o);
Collections.sort(keys);
for(String key : keys)
{
if(key.startsWith("SSLContext.")
&& !"SSLContext.Default".equals(key))
{
foundProtocol |= true;
System.out.print(" ");
System.out.print(key.substring("SSLContext.".length()));
System.out.print(" (");
System.out.print(p.getName());
System.out.println(")");
}
}
}
if(!foundProtocol)
if(enumeratedProviders)
System.out.println(" ! No SSL protocols supported by
any requested provider");
else
System.out.println(" ! No SSL protocols supported by
any provider");
// Get cipher suite info
SSLServerSocketFactory ssf =
(SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
String[] defaultCiphers = ssf.getDefaultCipherSuites();
String[] availableCiphers = ssf.getSupportedCipherSuites();
TreeMap<String,Boolean> ciphers = new TreeMap<String,Boolean>();
for(int i=0; i<availableCiphers.length; ++i )
ciphers.put(availableCiphers[i], Boolean.FALSE);
for(int i=0; i<defaultCiphers.length; ++i )
ciphers.put(defaultCiphers[i], Boolean.TRUE);
System.out.println("Default\tCipher Name");
for(Map.Entry<String,Boolean> cipher : ciphers.entrySet()) {
if(Boolean.TRUE.equals(cipher.getValue()))
System.out.print('*');
else
System.out.print(' ');
System.out.print('\t');
System.out.println(cipher.getKey());
}
}
}
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
iEYEARECAAYFAlBVQKoACgkQ9CaO5/Lv0PDqhQCfQbMl2lq5KaQRXI9NjE5utXV6
y6YAniCYUMan2nuSpIq53qx0DXkr2YI/
=euvP
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]