try
{
for (int i = 0; i != l.length; i++)
{
IetfAttrSyntax attr = new IetfAttrSyntax((ASN1Sequence)l[i].getValues()[0]);
// policyAuthority is on the format <vo>/<host>:<port>
String url = ((DERIA5String)GeneralName.getInstance(((ASN1Sequence) attr.getPolicyAuthority().getDERObject()).getObjectAt(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);