首页 > 解决方案 > 解析 ASN1 编码的整数

问题描述

我有这样的数据序列

序列(2 个元素)

对象标识符1.3.6.1.4.1.41482.3.7

八位字节串(1 个元素)

整数7029542

我可以得到 OctectString 十六进制为 02036b4326 02 我认为是整数标记,03 是长度,6b4326 是整数的十六进制值试图找出是否有内置的 Bouncy Castle 库,我可以传递十六进制值或DEROCTECTString 并能够取回整数值。

标签: javabouncycastle

解决方案


我想我找到了答案,看起来你必须创建一个新的 ASN1InputStream 并将 OCTECT String 的值传递给它,然后作为 ASN1Integer 读回

像这样的东西

ASN1InputStream asn1InputStream = new SN1InputStream(attestationExtensionBytes);
DEROctetString octString=(DEROctetString) asn1InputStream.readObject();
byte[] octectBytes=octString.getOctets();
asn1InputStream =new ASN1InputStream (octectBytes);
ASN1Integer asn1Integer=(ASN1Integer)asn1InputStream.readObject();

推荐阅读