600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > x509代码实例java_Java X509AttributeCertificate.getIssuer方法代码示例

x509代码实例java_Java X509AttributeCertificate.getIssuer方法代码示例

时间:2022-04-11 10:35:19

相关推荐

x509代码实例java_Java X509AttributeCertificate.getIssuer方法代码示例

import org.bouncycastle.x509.X509AttributeCertificate; //导入方法依赖的package包/类

/**

* Parses the contents of an attribute certificate.

*NOTE:Cryptographic signatures, time stamps etc. willnotbe checked.

*

* @param ac the attribute certificate to parse for VOMS attributes

*/

public VOMSAttribute(X509AttributeCertificate ac)

{

if (ac == null)

{

throw new IllegalArgumentException("VOMSAttribute: AttributeCertificate is NULL");

}

myAC = ac;

X509Attribute[] l = ac.getAttributes(VOMS_ATTR_OID);

if (l == null)

{

return;

}

try

{

for (int i = 0; i != l.length; i++)

{

IetfAttrSyntax attr = IetfAttrSyntax.getInstance(l[i].getValues()[0]);

// policyAuthority is on the format /:

String url = ((DERIA5String)attr.getPolicyAuthority().getNames()[0].getName()).getString();

int idx = url.indexOf("://");

if ((idx < 0) || (idx == (url.length() - 1)))

{

throw new IllegalArgumentException("Bad encoding of VOMS policyAuthority : [" + url + "]");

}

myVo = url.substring(0, idx);

myHostPort = url.substring(idx + 3);

if (attr.getValueType() != IetfAttrSyntax.VALUE_OCTETS)

{

throw new IllegalArgumentException(

"VOMS attribute values are not encoded as octet strings, policyAuthority = " + url);

}

ASN1OctetString[] values = (ASN1OctetString[])attr.getValues();

for (int j = 0; j != values.length; j++)

{

String fqan = new String(values[j].getOctets());

FQAN f = new FQAN(fqan);

if (!myStringList.contains(fqan) && fqan.startsWith("/" + myVo + "/"))

{

myStringList.add(fqan);

myFQANs.add(f);

}

}

}

}

catch (IllegalArgumentException ie)

{

throw ie;

}

catch (Exception e)

{

throw new IllegalArgumentException("Badly encoded VOMS extension in AC issued by " +

ac.getIssuer());

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。