Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I list the available Cipher algorithms?

I am getting a Cipher implementation with Cipher.getInstance(String algorithm). I am under the impression that the available algorithm names that I may pass differ based on what libraries which are present in my classpath.

I would like to write a simple program that I can run with different classpaths that will list the available Cipher algorithm names. What method would I need to call to get this list?

like image 901
skiphoppy Avatar asked Feb 17 '12 18:02

skiphoppy


People also ask

How do I find enabled ciphers in Windows?

If you go to a secure website or service using Chrome you can see which cipher suite was negotiated. Any HTTPS site will give you this information. At the top of the developer tools window, you will see a tab called security. Click it.

How do I know which cipher is SFTP using?

You can verify this using the FTP Logon activity. Select SFTP for connection type. Select Custom for cipher(s) selection. You can then check the drop down listings for encryption, MAC, key-exchange, and public key algorithms.


1 Answers

Once I have a list of providers, as described in JB Nizet's post, I still don't have a list of algorithms. I found that each Provider functions as a Properties object, and the Properties encode the algorithm names. I'm not entirely clear on if this is the correct way to look for them or not, and what exactly all the other properties mean, but I just wrote a routine that spewed all properties to System.out and grepped for various strings describing what I was looking for until I found it.

import java.security.*;  for (Provider provider: Security.getProviders()) {   System.out.println(provider.getName());   for (String key: provider.stringPropertyNames())     System.out.println("\t" + key + "\t" + provider.getProperty(key)); } 
like image 59
skiphoppy Avatar answered Sep 23 '22 04:09

skiphoppy