如何在 Java Spring 中实现 ASN1 解码?

我需要从复杂的序列中解码 ASN1 字符串,但我无法弄清楚这整个事情是如何工作的。我想做类似的事情

decoder = ASN1Library.initWithSequence(sequenceString);
ParseObject obj = decoder.decodeString(asn1String);

我尝试了一些库,但没有一个允许我做我想做的,或者我无法理解它们是如何工作的。我想我需要自己实现一个解析器。

任何人都可以解释如何做到这一点?非常感谢你!


紫衣仙女
浏览 701回答 1
1回答

慕少森

好的,这就是我发现的。我正在使用com.objsys.asn1j.runtime图书馆;我需要在 Java 类中实现整个序列,并使每个类扩展Asn1Seq,Asn1Integer或库中的其他超类。在扩展 Asn1Seq 的每个类(即所有类似 Sequence 的类)中,我需要覆盖该decode方法,并且在主体中我必须decode再次调用该类的每个属性。快速示例(包括Type1和Type2扩展Asn1Integer):class SeqData extends Asn1Seq {private static final long serialVersionUID = 55L;  Type1 attribute1;  Type2 attribute2;@Overridepublic int getElementCount() {    return 2;}@Overridepublic String getElementName(int arg0) {    switch (arg0) {    case 0:        return "attribute1";    case 1:        return "attribute2";    }    return "";}@Overridepublic Object getElementValue(int arg0) {    switch (arg0) {    case 0:        return attribute1;    case 1:        return attribute2;    }    return null;}@Overridepublic void decode(Asn1PerDecodeBuffer arg0) throws Asn1Exception, IOException {    attribute1 = new Type1();    attribute1.decode(arg0, 1L, 62L);    attribute2 = new Type2();    attribute2.decode(arg0, 1L, 62L);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java