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;
}