⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attr_certinfo.java

📁 这个是自由下载的
💻 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 + -