private static CheckSumTypeHandler getCheckSumHandler()

in kerby-kerb/kerb-crypto/src/main/java/org/apache/kerby/kerberos/kerb/crypto/CheckSumHandler.java [71:142]


    private static CheckSumTypeHandler getCheckSumHandler(CheckSumType cksumType,
                                                          boolean check) throws KrbException {
        CheckSumTypeHandler cksumHandler = null;
        switch (cksumType) {
            case CRC32:
                cksumHandler = new Crc32CheckSum();
                break;

            case DES_MAC:
                cksumHandler = new DesCbcCheckSum();
                break;

            case RSA_MD4:
                cksumHandler = new RsaMd4CheckSum();
                break;

            case RSA_MD5:
                cksumHandler = new RsaMd5CheckSum();
                break;

            case NIST_SHA:
                cksumHandler = new Sha1CheckSum();
                break;

            case RSA_MD4_DES:
                cksumHandler = new RsaMd4DesCheckSum();
                break;

            case RSA_MD5_DES:
                cksumHandler = new RsaMd5DesCheckSum();
                break;

            case HMAC_SHA1_DES3:
            case HMAC_SHA1_DES3_KD:
                cksumHandler = new HmacSha1Des3CheckSum();
                break;

            case HMAC_SHA1_96_AES128:
                cksumHandler = new HmacSha1Aes128CheckSum();
                break;

            case HMAC_SHA1_96_AES256:
                cksumHandler = new HmacSha1Aes256CheckSum();
                break;

            case CMAC_CAMELLIA128:
                cksumHandler = new CmacCamellia128CheckSum();
                break;

            case CMAC_CAMELLIA256:
                cksumHandler = new CmacCamellia256CheckSum();
                break;

            case HMAC_MD5_ARCFOUR:
                cksumHandler = new HmacMd5Rc4CheckSum();
                break;

            case MD5_HMAC_ARCFOUR:
                cksumHandler = new Md5HmacRc4CheckSum();
                break;

            default:
                break;
        }

        if (cksumHandler == null && !check) {
            String message = "Unsupported checksum type: " + cksumType.name();
            throw new KrbException(KrbErrorCode.KDC_ERR_SUMTYPE_NOSUPP, message);
        }

        return cksumHandler;
    }