我有这样的数据序列
SEQUENCE(2个元素)
对象标识符1.3.6.1.4.1.41482.3.7
OCTET STRING(1个元素)
整数7029542
我可以得到十进制字符串为02036b4326的OctectString
02我认为是整数标记,03是长度,6b4326是整数的十六进制值
尝试找出Bouncy Castle库中是否内置有可以传递十六进制值或DEROCTECTString并能够取回Integer值的库。
最佳答案
我想我想出了答案,看来您必须创建一个新的ASN1InputStream并将OCTECT字符串的值传递给它,然后将其读为ASN1Integer
像这样的东西
ASN1InputStream asn1InputStream = new SN1InputStream(attestationExtensionBytes);
DEROctetString octString=(DEROctetString) asn1InputStream.readObject();
byte[] octectBytes=octString.getOctets();
asn1InputStream =new ASN1InputStream (octectBytes);
ASN1Integer asn1Integer=(ASN1Integer)asn1InputStream.readObject();