On 12/12/2014 02:20 PM, Sean Mullan wrote:
On 12/12/2014 12:04 AM, Bernd Eckenfels wrote:
Just get it and throw it away, it is easier than iterating the algorithms of the providers.

Yes, probably. But as you note, the other way is to iterate over the Providers returned by Security.getProviders(), and call p.getService("MessageDigest", "SHA-256") on each ...


Even simpler:

java.security.Security.getAlgorithms("MessageDigest").contains("SHA-256")

Regards, Peter


--Sean



Am 12.12.2014 um 05:02 schrieb Weijun Wang <weijun.w...@oracle.com>:

I'd like to check if "SHA-256" is supported without calling MessageDigest.getInstance("SHA-256"). Does such a method exist?

My case is a multi-thread digestor like this:

class Digestor {
   Digestor(String alg) throws NSAE;
   @ThreadSafe byte[] digest(byte[]) throws Nothing;
}

So a Digestor is created and multiple threads can call the digest() method. I would be glad if the constructor can throw an NSAE but not creating a MessageDigest object because I don't know how to safely use it inside digest().

Thanks
Max

Reply via email to