package bce.server.dao;
import java.util.List;
/**
* AESKeyDB数据库的DAO的接口声明
*
* @author robins
*
*/
public interface AESKeyDAO {
/**
* 取一条AES原始密钥数据,返回字节流之前须完成16进制解码
*
* @param matchedBCEId 该AES密钥所属的用户ID
* @return AES原始密钥
*/
public byte[] get(int matchedBCEId);
/**
* 批量取出AES原始密钥数据,返回字节流之前须完成16进制解码
*
* @param offset matchedBCEId起始位置
* @param length 当前批量大小
* @return 批量的AES原始密钥
*/
public List<byte[]> get(int offset, int length);
/**
* 新增一条AES原始密钥数据,在方法内完成16进制编码
*
* @param matchedBCEId 该AES密钥所属的用户ID
* @param aesKey AES原始密钥
*/
public void add(int matchedBCEId, byte[] aesKey);
/**
* 批量添加AES原始密钥,在方法内完成16进制编码
*
* @param aesKeyList AES原始密钥批量数据
* @param offset 起始位置,对应到服务器用户ID
* @param length 批量大小
*/
public void add(List<byte[]> aesKeyList, int offset, int length);
/**
* 更新一条AES原始密钥数据,在方法内完成16进制编码
*
* @param matchedBCEId 该AES密钥所属的用户ID
* @param aesKey AES原始密钥
*/
public void update(int matchedBCEId, byte[] aesKey);
/**
* 批量更新AES原始密钥数据,在方法内完成16进制编码
*
* @param aesKeyList AES原始密钥批量数据
* @param offset 起始位置,对应到服务器用户ID
* @param length 批量大小
*/
public void update(List<byte[]> aesKeyList, int offset, int length);
/**
* 删除一条AES原始密钥数据
*
* @param matchedBCEId 该AES密钥所属的用户ID
*/
public void delete(int matchedBCEId);
/**
* 删除数据库中所有AES原始密钥数据,用于定期更新用户密钥
*/
public void delete();
}