?? attr_certinfo.java
字號:
package psic;
/**
* <p>Title: PSIC</p>
* <p>Description: PMI FUNCTIONS</p>
* <p>Copyright: Copyright (c) 2003 Wellhope.</p>
* <p>Company: wellhope</p>
* @author xch
* @version 1.0
*/
/**
* C Functions Define
typedef struct ATTR_CERTINFO{
int version;
PMI_NAME_INFO holder;
PMI_NAME_INFO issuer;
PKI_DATA holderSerialNumber;
PKI_DATA issuerSerialNumber;
BYTE signatureAlgo[30];
PKI_DATA serialNumber;
TIME_PERIOD validTime;
int countOfAttribute;
ATTRIBUTES *attributes; //Array Point
int countOfExtension;
EXTENSIONS* extensions; //Array Point
}ATTR_CERTINFO;
*/
public class ATTR_CERTINFO {
private int version;
public PMI_NAME_INFO holder;
public PMI_NAME_INFO issuer;
public PKI_DATA holderSerialNumber;
public PKI_DATA issuerSerialNumber;
private byte[] signatureAlgo;
public PKI_DATA serialNumber;
public TIME_PERIOD validTime;
private int countOfAttribute;
public ATTRIBUTES[] attributes;
private int countOfExtension;
public EXTENTIONS[] extensions;
public ATTR_CERTINFO() {
version = 2;
holder = new PMI_NAME_INFO();
issuer = new PMI_NAME_INFO();
holderSerialNumber = new PKI_DATA();
issuerSerialNumber = new PKI_DATA();
signatureAlgo = null;
serialNumber = new PKI_DATA();
validTime = new TIME_PERIOD();
countOfAttribute = 0;
attributes = null;
countOfExtension = 0;
extensions = null;
}
//version
public void setVersion(int version) {
this.version = version;
}
public int getVersion() {
return version;
}
//holderSerialNumber
public String getHoldSerialNumberStr() {
return byteToStr(this.holderSerialNumber);
}
//issuerSerialNumber
public String getIssuerSerialNumberStr() {
return byteToStr(this.issuerSerialNumber);
}
//signatureAlgo
public void setSignatureAlgo(byte[] signatureAlgo) {
this.signatureAlgo = signatureAlgo;
}
public byte[] getSignatureAlgo() {
if (signatureAlgo == null || signatureAlgo.length <= 0)
return null;
else
return new String(signatureAlgo).trim().getBytes();
}
//serailNumber
public String getSerialNumberStr() {
return byteToStr(this.serialNumber);
}
//將獲得的byte數組轉換為全大寫的字符串
public static String byteToStr(PKI_DATA serialNumber) {
int c;
String sn = "";
java.io.ByteArrayInputStream byteIn = null;
if (serialNumber != null) {
byteIn = new java.io.ByteArrayInputStream(serialNumber.getValue());
while ((c = byteIn.read()) != -1) {
if (c < 16) {
sn += "0";
}
sn += Integer.toHexString(c).toUpperCase();
}
} else {
return null;
}
return sn;
}
/**
* 增加一條屬性信息,提供給JNI調用
*/
public void addAnAttribute(int attrOidSize, byte[] attrOidValue, int attrDataType, int attrValueSize, byte[] attrValueValue) {
ATTRIBUTES aNewAttribute = new ATTRIBUTES();
aNewAttribute.attrOID = new PKI_DATA(attrOidValue, attrOidSize);
aNewAttribute.setAttrDataType(attrDataType);
aNewAttribute.attrValue = new PKI_DATA(attrValueValue, attrValueSize);
if (attributes == null) {
attributes = new ATTRIBUTES[1];
attributes[0] = aNewAttribute;
}else{
countOfAttribute ++;
ATTRIBUTES[] arrNewAttributes = new ATTRIBUTES[countOfAttribute];
System.arraycopy(arrNewAttributes, 0, attributes, 0, countOfAttribute-1);
arrNewAttributes[countOfAttribute-1] = aNewAttribute;
attributes = arrNewAttributes;
arrNewAttributes = null;
}
aNewAttribute = null;
}
public void addAnExtension(int extOidSize, byte[] extOidValue, int critical, int extValueSize, byte[] extValueValue) {
System.out.println("========in java extOidValue:");
for (int i=0; i<extOidSize; i++) {
System.out.print(extOidValue[i] + " ");
}
System.out.println();
EXTENTIONS aNewExtension = new EXTENTIONS();
aNewExtension.ExtOid = new PKI_DATA(extOidValue, extOidSize);
aNewExtension.setCritical(critical);
aNewExtension.extvalue = new PKI_DATA(extValueValue, extValueSize);
if (extensions == null) {
extensions = new EXTENTIONS[1];
extensions[0] = aNewExtension;
}else{
countOfExtension ++;
EXTENTIONS[] arrNewExtension = new EXTENTIONS[countOfExtension];
System.arraycopy(arrNewExtension, 0, extensions, 0, countOfExtension -1);
arrNewExtension[countOfExtension - 1] = aNewExtension;
extensions = arrNewExtension;
arrNewExtension = null;
}
aNewExtension = null;
System.out.println("in java addAnExtension() - extensions.length:" + extensions.length);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -