package org.apache.kerberos.kerb.crypto.cksum; import org.apache.kerberos.kerb.crypto.AbstractCryptoTypeHandler; import org.apache.kerberos.kerb.crypto.CheckSumTypeHandler; import org.apache.kerberos.kerb.crypto.enc.EncryptProvider; import org.apache.kerberos.kerb.KrbException; public abstract class AbstractCheckSumTypeHandler extends AbstractCryptoTypeHandler implements CheckSumTypeHandler { private int computeSize; private int outputSize; public AbstractCheckSumTypeHandler(EncryptProvider encProvider, HashProvider hashProvider, int computeSize, int outputSize) { super(encProvider, hashProvider); this.computeSize = computeSize; this.outputSize = outputSize; } @Override public String name() { return cksumType().getName(); } @Override public String displayName() { return cksumType().getDisplayName(); } @Override public int computeSize() { return computeSize; } @Override public int outputSize() { return outputSize; } public boolean isSafe() { return false; } public int cksumSize() { return 4; } public int keySize() { return 0; } public int confounderSize() { return 0; } @Override public byte[] checksum(byte[] data) throws KrbException { return checksum(data, 0, data.length); } @Override public byte[] checksum(byte[] data, int start, int size) throws KrbException { throw new UnsupportedOperationException(); } @Override public boolean verify(byte[] data, byte[] checksum) throws KrbException { return verify(data, 0, data.length, checksum); } @Override public boolean verify(byte[] data, int start, int size, byte[] checksum) throws KrbException { throw new UnsupportedOperationException(); } @Override public byte[] checksumWithKey(byte[] data, byte[] key, int usage) throws KrbException { return checksumWithKey(data, 0, data.length, key, usage); } @Override public byte[] checksumWithKey(byte[] data, int start, int size, byte[] key, int usage) throws KrbException { throw new UnsupportedOperationException(); } @Override public boolean verifyWithKey(byte[] data, byte[] key, int usage, byte[] checksum) throws KrbException { throw new UnsupportedOperationException(); } }