我有asn1格式的字节数组..现在我想解析这些数据以获取所需的信息.这是他们为c编写的代码..现在我想在
java.could中做同样的事情对此有任何帮助.
ASN1 asn1(in);
int startPos = in.tellg();
asn1.enterObject(asn1.getTag());
int endPos = asn1.getCurrentLength() + in.tellg();
ubytearray acctId, valData;
while (in.tellg() < endPos) {
asn1.enterObject(0x30); //0x30 TAG_SEQ
// read the name
ubytearray nameData = asn1.getContent(ASN1_TAG_UTF8_STRING);
ubytearray octstr = asn1.getContent(ASN1_TAG_OCTET_STRING);
ASN1 asn2(octstr);
asn2.enterObject(的0x30);
ustring urlstr(asn2.getContent(ASN1_TAG_UTF8_STRING));
ustring nameStr(asn2.getContent(ASN1_TAG_UTF8_STRING));
asn2.enterObject(的0x30);
ubytearray certs = asn2.getContent(ASN1_TAG_OCTET_STRING);
if ((urlstr.length() > 0) && (nameStr.length() > 0) && (certs.length() > 0)) {
printf("url %s\n", urlstr.c_str());
printf("name %s\n", nameStr.c_str());
printf("certs len:%d\n", certs.length());
}
}