// 
// Decompiled by Procyon v0.6.0
// 

package com.google.crypto.tink.prf;

import java.util.Objects;
import java.security.GeneralSecurityException;
import java.security.InvalidAlgorithmParameterException;

public final class AesCmacPrfParameters extends PrfParameters
{
    private final int keySizeBytes;
    
    public static AesCmacPrfParameters create(final int keySizeBytes) throws GeneralSecurityException {
        if (keySizeBytes != 16 && keySizeBytes != 32) {
            throw new InvalidAlgorithmParameterException(String.format("Invalid key size %d; only 128-bit and 256-bit are supported", keySizeBytes * 8));
        }
        return new AesCmacPrfParameters(keySizeBytes);
    }
    
    private AesCmacPrfParameters(final int keySizeBytes) {
        this.keySizeBytes = keySizeBytes;
    }
    
    public int getKeySizeBytes() {
        return this.keySizeBytes;
    }
    
    @Override
    public boolean equals(final Object o) {
        if (!(o instanceof AesCmacPrfParameters)) {
            return false;
        }
        final AesCmacPrfParameters that = (AesCmacPrfParameters)o;
        return that.getKeySizeBytes() == this.getKeySizeBytes();
    }
    
    @Override
    public int hashCode() {
        return Objects.hash(AesCmacPrfParameters.class, this.keySizeBytes);
    }
    
    @Override
    public boolean hasIdRequirement() {
        return false;
    }
    
    @Override
    public String toString() {
        return "AesCmac PRF Parameters (" + this.keySizeBytes + "-byte key)";
    }
}
