package org.apache.kerberos.kerb.crypto.enc;
import org.apache.kerberos.kerb.crypto.cksum.provider.Crc32Provider;
import org.apache.kerberos.kerb.KrbException;
import org.apache.kerberos.kerb.spec.common.CheckSumType;
import org.apache.kerberos.kerb.spec.common.EncryptionType;
public class DesCbcCrcEnc extends DesCbcEnc {
public DesCbcCrcEnc() {
super(new Crc32Provider());
}
public EncryptionType eType() {
return EncryptionType.DES_CBC_CRC;
}
public CheckSumType checksumType() {
return CheckSumType.CRC32;
}
@Override
public byte[] encrypt(byte[] data, byte[] key, int usage) throws KrbException {
byte[] iv = new byte[encProvider().blockSize()];
System.arraycopy(key, 0, iv, 0, key.length);
return encrypt(data, key, iv, usage);
}
@Override
public byte[] decrypt(byte[] cipher, byte[] key, int usage)
throws KrbException {
byte[] iv = new byte[encProvider().blockSize()];
System.arraycopy(key, 0, iv, 0, key.length);
return decrypt(cipher, key, iv, usage);
}
}