package org.apache.kerberos.kerb.crypto.enc;
import org.apache.kerberos.kerb.crypto.Hmac;
import org.apache.kerberos.kerb.crypto.cksum.HashProvider;
import org.apache.kerberos.kerb.KrbException;
public abstract class KeKiHmacSha1Enc extends KeKiEnc {
public KeKiHmacSha1Enc(EncryptProvider encProvider,
HashProvider hashProvider) {
super(encProvider, hashProvider);
}
@Override
public int paddingSize() {
return 0;
}
@Override
protected byte[] makeChecksum(byte[] key, byte[] data, int hashSize)
throws KrbException {
// generate hash
byte[] hash = Hmac.hmac(hashProvider(), key, data);
// truncate hash
byte[] output = new byte[hashSize];
System.arraycopy(hash, 0, output, 0, hashSize);
return output;
}
}