package com.kryptnostic.kodex.v1.crypto.signatures;
import java.security.NoSuchAlgorithmException;
import java.security.Signature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class Signatures {
private Signatures() {
}
private static final Logger logger = LoggerFactory.getLogger( Signatures.class );
public static Signature createSigner(SignatureAlgorithm algorithm) {
try {
return Signature.getInstance( algorithm.toString() );
} catch (NoSuchAlgorithmException e) {
logger.error( "Unable to acquire instance of {}" , algorithm );
return null;
}
}
public static Signature createSigner(
SignatureAlgorithm preferredAlgorithm,
SignatureAlgorithm ... alternativeAlgorithms) {
Signature signature = createSigner( preferredAlgorithm );
for (int i = 0; ( signature == null ) && ( i < alternativeAlgorithms.length ); ++i) {
signature = createSigner( alternativeAlgorithms[i] );
}
return signature;
}
}