org.jboss.resteasy.jose.jwe.EncryptionMethod Maven / Gradle / Ivy
package org.jboss.resteasy.jose.jwe;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.jboss.resteasy.jose.i18n.Messages;
/**
* @author Bill Burke
* @version $Revision: 1 $
*/
public enum EncryptionMethod {
A128CBC_HS256(256),
A256CBC_HS512(512),
A128GCM(128),
A256GCM(256);
private int cekBitLength;
EncryptionMethod(final int cekBitLength) {
this.cekBitLength = cekBitLength;
}
public int getCekBitLength() {
return cekBitLength;
}
public MessageDigest createSecretDigester() {
try {
switch (cekBitLength) {
case 128:
return MessageDigest.getInstance("MD5");
case 256:
return MessageDigest.getInstance("SHA-256");
case 512:
return MessageDigest.getInstance("SHA-512");
}
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
throw new IllegalStateException(Messages.MESSAGES.unknownLength());
}
}