代码之家  ›  专栏  ›  技术社区  ›  Gian Piero

读取特定于应用程序的DER(asn1 java bouncycastle)

  •  0
  • Gian Piero  · 技术社区  · 6 年前

    我试图用一个有弹性的castle asn1库来翻译一个特定于应用程序类型的对象(或者可能是一个数组?)但我无法驾驭这个结构。 使用以下简单代码(arr是我的字节数组)

    ASN1InputStream bIn = new ASN1InputStream (new ByteArrayInputStream (
    arr);
    DERApplicationSpecific primitive = (DERApplicationSpecific) bIn.readObject 
    ();
    System.out.println (ASN1Dump.dumpAsString (primitive));
    

    我得到这张照片:

    DER ApplicationSpecific [21] (432b30363a3435223b6461796c696768742d736176696e672d74696d653d223031223b6e6574776f726b2d70726f7669646564bf1f818f313d800103813832363230333036323436323439313737343632303535)
    

    我可以猜测这是一个由21个元素组成的数组,但我无法深入 有人能帮我吗? 非常感谢你。

    1 回复  |  直到 6 年前
        1
  •  2
  •   rkosegi    6 年前

    我不能再深入了,有人能帮我吗?

    很可能不会,正如对象的名称所示,它是特定于应用程序的。

    21 串内输出方式 tag 值,而不是子元素的数量。

    你可以打电话 getContents() 获取底层字节数组和 getApplicationTag() 获取标记值(在您的情况下为21)。

    如何解释这些数据,没有更多细节就不得而知。