Detecting whether an algorithm is supported without creating one?

Weijun Wang at
Fri Dec 12 04:02:01 UTC 2014

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().


More information about the security-dev mailing list