// --- BEGIN COPYRIGHT BLOCK --- // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; version 2 of the License. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with this program; if not, write to the Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. // // (C) 2007 Red Hat, Inc. // All rights reserved. // --- END COPYRIGHT BLOCK --- package com.netscape.certsrv.dbs.keydb; import java.math.BigInteger; import java.security.PublicKey; import java.util.Enumeration; import netscape.security.x509.X500Name; import com.netscape.certsrv.base.EBaseException; import com.netscape.certsrv.dbs.ModificationSet; import com.netscape.certsrv.dbs.repository.IRepository; /** * An interface represents a Key repository. This is the * container of archived keys. *
* * @version $Revision$, $Date$ */ public interface IKeyRepository extends IRepository { /** * Archives a key to the repository. *
* * @param record key record * @exception EBaseException failed to archive key */ public void addKeyRecord(IKeyRecord record) throws EBaseException; /** * Reads an archived key by serial number. *
* * @param serialNo serial number * @return key record * @exception EBaseException failed to recover key */ public IKeyRecord readKeyRecord(BigInteger serialNo) throws EBaseException; /** * Reads an archived key by b64 encoded cert. *
* * @param cert b64 encoded cert * @return key record * @exception EBaseException failed to recover key */ public IKeyRecord readKeyRecord(String cert) throws EBaseException; /** * Reads an archived key by owner name. *
*
* @param ownerName owner name
* @return key record
* @exception EBaseException failed to recover key
*/
public IKeyRecord readKeyRecord(X500Name ownerName)
throws EBaseException;
/**
* Reads archived key using public key.
*
* @param publicKey public key that is corresponding
* to the private key
* @return key record
* @exception EBaseException failed to read key
*/
public IKeyRecord readKeyRecord(PublicKey publicKey)
throws EBaseException;
/**
* Searches for private keys.
*
* @param filter LDAP filter for the search
* @param maxSize maximium number of entries to be returned
* @return a list of private key records
* @exception EBaseException failed to search keys
*/
public Enumeration
* keySerialNumber
* keyState
* algorithm
* keySize
* keyOwnerName
* privateKey
* publicKey
* dateOfRecovery
* keyCreateTime
* keyModifyTime
* keyMetaInfo
*
*
* @param filter search filter
* @param attrs list of attributes to be returned
* @param pageSize virtual list page size
* @return list of key records
* @exception EBaseException failed to search key records
*/
public IKeyRecordList findKeyRecordsInList(String filter,
String attrs[], int pageSize) throws EBaseException;
/**
* Searchs for a list of key records.
*
* @param filter search filter
* @param attrs list of attributes to be returned
* @param sortKey name of attribute that the list should be sorted by
* @param pageSize virtual list page size
* @return list of key records
* @exception EBaseException failed to search key records
*/
public IKeyRecordList findKeyRecordsInList(String filter,
String attrs[], String sortKey, int pageSize)
throws EBaseException;
}