package hamaster.gradesign;
import hamaster.gradesgin.ibe.IBEPrivateKey;
import hamaster.gradesgin.ibe.IBEPublicParameter;
import hamaster.gradesgin.ibe.io.SecureByteArrayOutputStream;
import hamaster.gradesgin.ibs.IBSCertificate;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.Serializable;
/**
* 身份描述信息 包含身份字符串和私钥
* @author <a href="mailto:wangyeee@gmail.com">Wang Ye</a>
*/
public class IdentityDescription implements Serializable, SecureConstraints {
private static final long serialVersionUID = -9068795518061465393L;
/**
* 用户私钥
*/
private IBEPrivateKey privateKey;
/**
* 用户签名证书
*/
private IBSCertificate certificate;
/**
* 用户所属于的IBE系统的公共参数
*/
private IBEPublicParameter systemPublicParameter;
public IdentityDescription() {
}
/**
* <pre>将身份描述信息转换为字节表示形式:
* 系统公共参数
* 用户私钥(不包含所有者身份和椭圆函数参数)
* 签名证书</pre>
* @return 字节形式表示的身份描述信息
*/
public byte[] toByteArray() {
ByteArrayOutputStream out = new SecureByteArrayOutputStream();
byte[] id = null;
try {
systemPublicParameter.writeExternal(out);
out.write(privateKey.getrID());
out.write(privateKey.gethID());
certificate.writeExternal(out);
id = out.toByteArray();
} catch (IOException e) {
} finally {
try {
out.close();
} catch (IOException e) {
}
}
return id;
}
public IBEPrivateKey getPrivateKey() {
return privateKey;
}
public void setPrivateKey(IBEPrivateKey privateKey) {
this.privateKey = privateKey;
}
public IBSCertificate getCertificate() {
return certificate;
}
public void setCertificate(IBSCertificate certificate) {
this.certificate = certificate;
}
public IBEPublicParameter getSystemPublicParameter() {
return systemPublicParameter;
}
public void setSystemPublicParameter(IBEPublicParameter systemPublicParameter) {
this.systemPublicParameter = systemPublicParameter;
}
}