// --- 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.cmscore.dbs; import java.math.BigInteger; import java.util.Date; import java.util.Enumeration; import java.util.Vector; import com.netscape.certsrv.base.EBaseException; import com.netscape.certsrv.base.MetaInfo; import com.netscape.certsrv.dbs.IDBObj; import com.netscape.certsrv.dbs.keydb.IKeyRecord; import com.netscape.certsrv.dbs.keydb.KeyState; /** * A class represents a Key record. It maintains the key * life cycle as well as other information about an * archived key. Namely, whether a key is inactive because * of compromise. *
*
* @author thomask
* @version $Revision$, $Date$
*/
public class KeyRecord implements IDBObj, IKeyRecord {
/**
*
*/
private static final long serialVersionUID = -3765000841161998984L;
private BigInteger mSerialNo = null;
private KeyState mState = null;
private MetaInfo mMetaInfo = null;
private String mAlgorithm = null;
private byte mPrivateKey[] = null;
private byte mPublicKey[] = null;
private Integer mSize = null;
private String mOwnerName = null;
private Date mDatesOfRecovery[] = null;
private Date mCreateTime = null;
private Date mModifyTime = null;
private String mArchivedBy = null;
private String mClientId = null;
private String mStatus = null;
private String mDataType = null;
protected static Vector
*/
public void set(String name, Object object) throws EBaseException {
if (name.equalsIgnoreCase(ATTR_STATE)) {
mState = (KeyState) object;
} else if (name.equalsIgnoreCase(ATTR_ID)) {
mSerialNo = (BigInteger) object;
} else if (name.equalsIgnoreCase(ATTR_KEY_SIZE)) {
mSize = (Integer) object;
} else if (name.equalsIgnoreCase(ATTR_OWNER_NAME)) {
mOwnerName = (String) object;
} else if (name.equalsIgnoreCase(ATTR_ALGORITHM)) {
mAlgorithm = (String) object;
} else if (name.equalsIgnoreCase(ATTR_PRIVATE_KEY_DATA)) {
mPrivateKey = (byte[]) object;
} else if (name.equalsIgnoreCase(ATTR_PUBLIC_KEY_DATA)) {
mPublicKey = (byte[]) object;
} else if (name.equalsIgnoreCase(ATTR_DATE_OF_RECOVERY)) {
mDatesOfRecovery = (Date[]) object;
} else if (name.equalsIgnoreCase(ATTR_META_INFO)) {
mMetaInfo = (MetaInfo) object;
} else if (name.equalsIgnoreCase(ATTR_CREATE_TIME)) {
mCreateTime = (Date) object;
} else if (name.equalsIgnoreCase(ATTR_MODIFY_TIME)) {
mModifyTime = (Date) object;
} else if (name.equalsIgnoreCase(ATTR_ARCHIVED_BY)) {
mArchivedBy = (String) object;
} else if (name.equalsIgnoreCase(ATTR_CLIENT_ID)) {
mClientId = (String) object;
} else if (name.equalsIgnoreCase(ATTR_DATA_TYPE)) {
mDataType = (String) object;
} else if (name.equalsIgnoreCase(ATTR_STATUS)) {
mStatus = (String) object;
} else {
throw new EBaseException(com.netscape.certsrv.apps.CMS.getUserMessage("CMS_BASE_INVALID_ATTRIBUTE", name));
}
}
/**
* Retrieves an attribute.
*
*/
public Object get(String name) throws EBaseException {
if (name.equalsIgnoreCase(ATTR_STATE)) {
return mState;
} else if (name.equalsIgnoreCase(ATTR_ID)) {
return mSerialNo;
} else if (name.equalsIgnoreCase(ATTR_KEY_SIZE)) {
return mSize;
} else if (name.equalsIgnoreCase(ATTR_OWNER_NAME)) {
return mOwnerName;
} else if (name.equalsIgnoreCase(ATTR_ALGORITHM)) {
return mAlgorithm;
} else if (name.equalsIgnoreCase(ATTR_PRIVATE_KEY_DATA)) {
return mPrivateKey;
} else if (name.equalsIgnoreCase(ATTR_PUBLIC_KEY_DATA)) {
return mPublicKey;
} else if (name.equalsIgnoreCase(ATTR_DATE_OF_RECOVERY)) {
return mDatesOfRecovery;
} else if (name.equalsIgnoreCase(ATTR_CREATE_TIME)) {
return mCreateTime;
} else if (name.equalsIgnoreCase(ATTR_MODIFY_TIME)) {
return mModifyTime;
} else if (name.equalsIgnoreCase(ATTR_META_INFO)) {
return mMetaInfo;
} else if (name.equalsIgnoreCase(ATTR_ARCHIVED_BY)) {
return mArchivedBy;
} else if (name.equalsIgnoreCase(ATTR_CLIENT_ID)) {
return mClientId;
} else if (name.equalsIgnoreCase(ATTR_DATA_TYPE)) {
return mDataType;
} else if (name.equalsIgnoreCase(ATTR_STATUS)) {
return mStatus;
} else {
throw new EBaseException(com.netscape.certsrv.apps.CMS.getUserMessage("CMS_BASE_INVALID_ATTRIBUTE", name));
}
}
/**
* Deletes an attribute.
*
*/
public void delete(String name) throws EBaseException {
throw new EBaseException(com.netscape.certsrv.apps.CMS.getUserMessage("CMS_BASE_INVALID_ATTRIBUTE", name));
}
/**
* Retrieves an enumeration of attributes.
*
*/
public Enumeration
*
* @return serial number of this key record
*/
public BigInteger getSerialNumber() throws EBaseException {
return mSerialNo;
}
/**
* Sets serial number.
*/
public void setSerialNumber(BigInteger serialno) throws EBaseException {
mSerialNo = serialno;
}
/**
* Retrieves the key state. This gives key life cycle
* information.
*
*
* @return key state
*/
public KeyState getState() throws EBaseException {
return mState;
}
/**
* Sets key state.
*
*/
public void setState(KeyState state) throws EBaseException {
mState = state;
}
/**
* Retrieves the uid of person who archived this record.
*/
public String getArchivedBy() {
return mArchivedBy;
}
/**
* Retrieves key.
*
*
* @return archived key
*/
public byte[] getPrivateKeyData() throws EBaseException {
return mPrivateKey;
}
/**
* Sets key data.
*/
public void setPrivateKeyData(byte keydata[]) throws EBaseException {
mPrivateKey = keydata;
}
/**
* Retrieves the key size.
*
*
* @return key size
*/
public Integer getKeySize() throws EBaseException {
return mSize;
}
/**
* Retrieves the metaInfo.
*
*
* @return metaInfo
*/
public MetaInfo getMetaInfo() {
return mMetaInfo;
}
/**
* Sets key size.
*
*/
public void setKeySize(Integer keySize) throws EBaseException {
mSize = keySize;
}
/**
* Retrieves owner name.
*
*/
public String getOwnerName() throws EBaseException {
return mOwnerName;
}
/**
* Sets owner name.
*
*/
public void setOwnerName(String name) throws EBaseException {
mOwnerName = name;
}
/**
* Retrieves the public key.
*
*/
public byte[] getPublicKeyData() throws EBaseException {
return mPublicKey;
}
/**
* Sets the public key.
*
*/
public void setPublicKeyData(byte key[]) throws EBaseException {
mPublicKey = key;
}
/**
* Retrieves the date(s) of revocation.
*
*/
public Date[] getDateOfRevocation() throws EBaseException {
return mDatesOfRecovery;
}
/**
* Sets the dateso of revocation.
*
*/
public void setDateOfRevocation(Date dates[]) throws EBaseException {
mDatesOfRecovery = dates;
}
/**
* Retrieves algorithm of the key pair.
*/
public String getAlgorithm() {
return mAlgorithm;
}
/**
* Retrieves the creation time of this record.
*/
public Date getCreateTime() {
return mCreateTime;
}
/**
* Retrieves the last modification time of
* this record.
*/
public Date getModifyTime() {
return mModifyTime;
}
/**
* Retrieves the client ID of this record.
*/
public String getClientId() throws EBaseException {
return mClientId ;
}
/**
* Retrieves the key status of this record.
*/
public String getKeyStatus() throws EBaseException {
return mStatus;
}
/**
* Retrieves the key data type of this record.
*/
public String getDataType() throws EBaseException {
return mDataType;
}
}