package com.hwlcn.security.crypto; import javax.crypto.KeyGenerator; import java.security.Key; import java.security.NoSuchAlgorithmException; public abstract class AbstractSymmetricCipherService extends JcaCipherService { protected AbstractSymmetricCipherService(String algorithmName) { super(algorithmName); } public Key generateNewKey() { return generateNewKey(getKeySize()); } public Key generateNewKey(int keyBitSize) { KeyGenerator kg; try { kg = KeyGenerator.getInstance(getAlgorithmName()); } catch (NoSuchAlgorithmException e) { String msg = "Unable to acquire " + getAlgorithmName() + " algorithm. This is required to function."; throw new IllegalStateException(msg, e); } kg.init(keyBitSize); return kg.generateKey(); } }