All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.resteasy.jose.jwe.EncryptionMethod Maven / Gradle / Ivy

There is a newer version: 7.0.0.Alpha4
Show newest version
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());
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy