public void decode(Asn1BerDecodeBuffer buffer, boolean explicit, int implicitLength)
throws Asn1Exception, IOException
{
int llen = (explicit) ? matchTag(buffer, TAG) : implicitLength; init(); Asn1BerDecodeContext _context = new Asn1BerDecodeContext(buffer, llen);
IntHolder elemLen = new IntHolder();
if (_context.matchElemTag((short)0, (short)0, (int)6, elemLen, false)) {
this.direct_reference = new Asn1ObjectIdentifier();
this.direct_reference.decode(buffer, true, elemLen.value);
} if (_context.matchElemTag((short)0, (short)0, 2, elemLen, false)) {
this.indirect_reference = new Asn1Integer();
this.indirect_reference.decode(buffer, true, elemLen.value);
} if (_context.matchElemTag((short)0, (short)0, 7, elemLen, false)) {
this.data_value_descriptor = new Asn1ObjectDescriptor();
this.data_value_descriptor.decode(buffer, true, elemLen.value);
} if (!(_context.expired())) {
Asn1Tag tag = buffer.peekTag();
if ((tag.equals((short)128, (short)32, 0)) ||
(tag.equals((short)128, (short)0, 1)) ||
(tag.equals((short)128,(short) 0, 2)) ||
(tag.equals((short)192, (short)32, 30)))
{
this.encoding = new Asn1External_encoding();
this.encoding.decode(buffer, true, elemLen.value);
break label277:
}
throw new Asn1MissingRequiredException(buffer);
}
throw new Asn1MissingRequiredException(buffer); if (!(_context.expired())) {
label277: Asn1Tag _tag = buffer.peekTag();
if ((_tag.equals((short)0,(short) 0, 6)) ||
(_tag.equals((short)0, (short)0, 2)) ||
(_tag.equals((short)0,(short)0, 7)))
throw new Asn1SeqOrderException();
} if ((explicit) && (llen == -9999))
matchTag(buffer, Asn1Tag.EOC);
}
有好点的工具可以介绍?我用的是java decompiler
DJ JAVA Decompiler DJ Java Decompiler 是个反编译的工具,可以将编译过的CLASS文件编译还原成为Java原始文件并且不需要额外安装JVM(Java虚拟机)或是Java SDK的工具模组即可使用。不单如此,DJJava Decompiler也兼具有Java程序编辑工具的角色,提供一些辅助功能便于程序撰......
http://www.jb51.net/do/plus/download.php?open=0&aid=16788&cid=3