/* See LICENSE for licensing and NOTICE for copyright. */ package org.cryptacular.spec; /** * Describes a block cipher algorithm with a known key size. * * @author Middleware Services */ public class KeyedBlockCipherSpec extends BufferedBlockCipherSpec { /** Key length in bits. */ private final int keyLength; /** * Creates a new instance from the given cipher specifications. * * @param algName Cipher algorithm name. * @param cipherMode Cipher mode. * @param cipherPadding Cipher padding scheme algorithm. * @param keyBitLength Key length in bits. */ public KeyedBlockCipherSpec( final String algName, final String cipherMode, final String cipherPadding, final int keyBitLength) { super(algName, cipherMode, cipherPadding); if (keyBitLength < 0) { throw new IllegalArgumentException("Key length must be non-negative"); } this.keyLength = keyBitLength; } /** * Gets the cipher key length in bits. * * @return Key length in bits. */ public int getKeyLength() { return keyLength; } }