我有这样的数据序列
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.3.6.1.4.1.41482.3.7
OCTET STRING(1 elem)
INTEGER7029542
我可以得到十六进制的OctectString是02036b4326 02我认为是整数标记,03是长度,6b4326是整数的十六进制值 试图找出是否有内置的Bouncy Castle库,我可以传递十六进制值或DEROCTECTString,并能够获得整数值。
答案 0 :(得分:2)
我想我找到了答案,看起来你必须创建一个新的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();