java - 解析 ASN1 编码的整数
问题描述
我有这样的数据序列
序列(2 个元素)
对象标识符1.3.6.1.4.1.41482.3.7
八位字节串(1 个元素)
整数7029542
我可以得到 OctectString 十六进制为 02036b4326 02 我认为是整数标记,03 是长度,6b4326 是整数的十六进制值试图找出是否有内置的 Bouncy Castle 库,我可以传递十六进制值或DEROCTECTString 并能够取回整数值。
解决方案
我想我找到了答案,看起来你必须创建一个新的 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();
推荐阅读
- android - 如何在 Android 应用程序及其库之间共享 gradle 依赖项?
- xml - Google 表格脚本 XML 返回 ID 名称
- rest - 无法使用 REST API 从 TeamCity 下载工件
- r - R对象引用计数
- powershell - 用于识别特定文本并用另一列中的文本替换而不影响列位置的脚本
- javascript - Gatsbyjs + Google 分析 - 跟踪自定义事件?
- javascript - SVG 的下载链接(保留为变量)
- c# - 为什么 ASP.NET MVC 的 Redirect 方法在代理后面运行应用程序时会设置错误的 Location 标头?
- sql - Postgresql 查询以检索具有按深度排序的所有孩子的父母
- asp.net - 需要处理发布请求并将用户重定向到特定网站