Openssl Asn1parse 无法正确提取数据

2024-06-21

使用 asn1parse 解码 openssl 数据时出现问题。使用 asn1parse 命令后,out.pem 包含与预期输出不匹配。实际输出和预期输出如下所示。 请帮助我解决这个问题。

openssl asn1parse -通知 PEM -in base64.pem -out out.pem

猫base64.pem MIIDMQYLKoZIhvcNAQkQASugggOIBIIDhHsKICAgICJpZXRmLXN6dHAtY29udmV5ZWQtaW5mbzpvbmJvYXJkaW5nLWluZm9ybWF0aW9uIjogewogICAgICAgICJib290LWltYWdlIjogewogICAgICAgICAgICAiZG93 bmxvYWQtdXJpIjogWwogICAgICAgICAgICAgICAgImh0dHBzOi8vZXhhbXBsZS5jb20vbXktYm9vdC1pbWFnZS5pbWciCiAgICAgICAgICAgIF0sCiagICAgICAgICAgICJpbWFnZS12ZXJpZmljYXRpb24iO iBbCiagICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImhhc2gtYWxnb3JpdGhtIjogImlldGYtc3p0cC1jb252ZXllZC1pbmZvOnNoYS0yNTYiLAOGICAgICAgICAgICAgICAgICAgICJoyXNoLXZhbHVlijogImY wOMY3OjVlOjM0OjUzOmMwOjExOjcyOmUzOmNmOmUxOmQ5OjNhOMRjOmM3OmJmOmI1OmM2OjdmOjE3OjZmOjdlOjMwOjc1OjBhOjEzOjQyOjE2OjM0OjI0OjljOjJk IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAicHJlLWNvbmZpZ3VyYXRpb24tc2NyaXB0IjogIkl5OWlhVzR2WW1GemFBcGxZMmh2SUNKcGJuTnBar1VnZEdobElIQnlauzFqY jI1bWFXZDFjbUYwYVc5dUxYTmpjbWx3ZEM0dUxpSUsiLAogICAgICAgICJjb25maWd1cmF0aW9uLWhhbmRsaW5nIjogIm1lcmdlIiwKICAgICAgICAiY29uZmlndXJhdGlvbiI6ICJQSFJ2Y0NCNGJXeHVjejB pYUhSMGNITZMMLY0WVcxd2JHVXVZMjl0TDJOdmJtWnBaeUkrQ2lBZ1​​BHRnVlUzE0Yld3dFkyOXVkR1Z1ZEMxdmEyRjVMejRLUEM5MGIzQStDZz09IiwKICAgICAgICAicG9zdC1jb25maWd1cmF 0aW9uLXNjcmlwdCI6ICJJeTlpYVc0dlltRnphQXBsWTJodklDSnBibk5wWkdVZ2RHaGxJSEJ2YzNRdFkyOXVabWxuZFhKaGRHbHZiaTF6WTNKcGNIUXVMaTRpQ2c9PSIKICAgIH0KfQ==

0:d=0  hl=2 l=  86 prim: appl [ 7 ]        

88:d=0 hl=2 l= 67 prim: 应用 [ 9 ]

猫输出.pem GVudC1va2F5Lz4KPC90b3A+Cg==", “后配置脚本”:“Iy9iaW4vYmFzaAplY2hvICJpbnNpZGUgdGhlIHBvc3QtY29uZmlndXJhdGlvbi1zY3JpcHQuLi4iCg==” } }

预期输出.pem b'0\x82\x03\x99\x06\x0b*\x86H\x86\xf7\r\x01\t\x10\x01+\xa0\x82\x03\x88\x04\x82\x03\x84{\n " ietf-sztp-conveyed-info:onboarding-information": {\n "boot-image": {\n "download-uri": [\n "https://example.com/my-boot-image.img "\n ],\n "图像验证": [\n {\n "哈希算法": "ietf-sztp-conveyed-info:sha-256",\n "哈希值": "d8: 56:8d:d2:10:5e:dc:75:4c:c7:87:ae:f1:27:97:65:e0:65:17:6c:04:61:22:fa:3e:82: cf:9d:0f:ae:1a:3d"\n }\n ]\n },\n "预配置脚本": "Iy9iaW4vYmFzaAplY2hvICJpbnNpZGUgdGhlIHByZS1jb25maWd1cmF0aW9uLXNjcmlwdC4uLiIK",\n "配置处理": "合并", \n "configuration": "PHRvcCB4bWxucz0iaHR0cHM6L2V4YW1wbGUuY29tL2NvbmZpZyI+CiAgPGFueS14bWwtY29udGVudC1va2F5Lz4KPC90b3A+Cg==",\n "后配置脚本": "Iy9iaW4vYmFzaAplY2hvICJ pbnNpZGUgdGhlIHBvc3QtY29uZmlndXJhdGlvbi1zY3JpcHQuLi4iCg=="\n }\n}'


您的输入文件包含一个长的 base64 行。 OpenSSL 期望 base64 格式的输入将其行换行为 64 个字符。

如果你在 *nix 环境中,你有fold您可以使用工具来进行绕线。您可以使用换行创建输入文件的不同版本,也可以使用以下命令一次性完成此操作流程替代 https://www.gnu.org/software/bash/manual/html_node/Process-Substitution.html#Process-Substitution, 像这样:

$ openssl asn1parse -in <(fold -w 64 base64.pem)
    0:d=0  hl=4 l= 921 cons: SEQUENCE          
    4:d=1  hl=2 l=  11 prim: OBJECT            :1.2.840.113549.1.9.16.1.43
   17:d=1  hl=4 l= 904 cons: cont [ 0 ]        
   21:d=2  hl=4 l= 900 prim: OCTET STRING      :{
    "ietf-sztp-conveyed-info:onboarding-information": {
        "boot-image": {
            "download-uri": [
                "https://example.com/my-boot-image.img"
            ],
            "image-verification": [
                {
                    "hash-algorithm": "ietf-sztp-conveyed-info:sha-256",
                    "hash-value": "f0:f7:5e:34:53:c0:11:72:e3:cf:e1:d9:3a:dc:c7:bf:b5:c6:7f:17:6f:7e:30:75:0a:13:42:16:34:24:9c:2d"
                }
            ]
        },
        "pre-configuration-script": "Iy9iaW4vYmFzaAplY2hvICJpbnNpZGUgdGhlIHByZS1jb25maWd1cmF0aW9uLXNjcmlwdC4uLiIK",
        "configuration-handling": "merge",
        "configuration": "PHRvcCB4bWxucz0iaHR0cHM6L2V4YW1wbGUuY29tL2NvbmZpZyI+CiAgPGFueS14bWwtY29udGVudC1va2F5Lz4KPC90b3A+Cg==",
        "post-configuration-script": "Iy9iaW4vYmFzaAplY2hvICJpbnNpZGUgdGhlIHBvc3QtY29uZmlndXJhdGlvbi1zY3JpcHQuLi4iCg=="
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Openssl Asn1parse 无法正确提取数据 的相关文章

  • 无法通过 Git Bash 克隆 git 存储库

    在尝试使用克隆存储库时git clone 它显示以下错误 致命 无法访问 https github com microsoft c9 python getting started git https github com microsoft
  • 使用ssl和socket的python客户端身份验证

    我有一个 python 服务器 需要客户端使用证书进行身份验证 我如何制作一个客户端脚本 使用客户端证书由 python 中的服务器使用 ssl 和套接字模块进行身份验证 有没有仅使用套接字和 ssl 而不扭曲的示例 from OpenSS
  • 是否存在用于解析 ASN.1 或基于它生成 PHP 代码的 PHP 库?

    我已经审视过自己了 但今天我的 Google fu 似乎并不强 我正在努力开发一种标准化协议 用于通过 TCP IP 连接在 Apache PHP 服务器和微控制器上的嵌入式 C 代码之间交换数据结构 我们使用 ASN 1 表示法 我真正想
  • 整数的 ASN.1 / DER 编码

    我目前开始使用 DER 杰出编码规则 编码 并且在理解整数编码时遇到问题 在参考文档中https www itu int ITU T studygroups com17 languages X 690 0207 pdf https www
  • 未定义的符号:SSLv2_client_method

    我正在尝试将 openssl 1 0 1e 更新到 1 0 1s 这是源码编译的 当我完成以下步骤后 cd openssl 1 0 1s config 共享 make 进行安装 apachectl 配置测试 我收到错误 httpd usr
  • 在 python 2.7 中更新 openssl

    想知道是否有人可以解释 openssl 在 python2 7 中如何工作 我不确定 python 是否有自己的 openssl 或者从本地机器 env 中获取它 让我解释 如果我在Python中这样做 gt gt gt import ss
  • 为什么 DER ASN.1 大整数的解组在 Golang 中仅限于 SEQUENCE?

    我希望能够使用encoding asn1 包从 DER 文件中解组一个大整数 但它看起来只适用于整数序列 例如 这不起作用 这很奇怪 因为 Big Int 的编组效果很好 https play golang org p Wkj0jAA6bp
  • 如何从密钥对的现有公钥创建证书签名请求 (CSR)(假设私钥位于其他地方的安全位置)?

    我正在使用 OpenSSL openSSL的所有参考文献都集中在以下两个创建CSR的命令 一个要求您输入一个已经存在的私钥 并派生公钥 第二个将创建一个新的密钥对 我想使用我的公钥而不是创建新的 创建 CSR 和私钥 openssl req
  • 为 Raspberry Pi 2 交叉编译 rust-openssl

    我在一台 Debian 机器上 我想为我的 Raspberry Pi 2 交叉编译一个项目 我已经设法使用 rustup 为一个简单的 hello world 做到了这一点 但不知道如何交叉编译 rust openssl crate 我已经
  • openssl ciphers 命令将密码显示为 SSL 而不是 TLS

    我的应用程序出现 SSL 握手错误的问题 开发人员认为这是因为我们的服务器上的密码错误 他们尝试使用名为 TLS RSA WITH AES 256 CBC SHA 的密码 据我所知 该密码的 openssl 名称是 AES256 SHA 当
  • 罕见的自制错误:“未知命令:开关”

    我正在尝试重新启动一些需要使用旧版本 openssl 的遗留项目 我在这个问题上找到了很好的意见here https stackoverflow com a 61086871 921573 它在我的一台机器上工作 但在另一台机器上不起作用
  • 使用 PEM 证书验证 Powershell 中的 XML 签名

    我正在尝试创建一个 powershell 脚本来使用 XML 文档中的数据 然而 在进行任何工作之前 我需要通过验证签名来验证 XML 没有被篡改 我有一份用于以 PEM 格式签署 XML 的证书的公钥副本 但我不知道如何让 powersh
  • openssl 是否拒绝没有基本约束的自签名证书?

    我有两个极其相似的自签名证书 是通过两种不同的方法生成的 为了测试它们 我有 在我的主机文件中添加了 local mydomain com 的条目 设置一个 nginx 服务器 使用被测试的证书和关联的私钥在端口 443 上侦听该域 然后我
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • PKCS#11 引擎在 centos 6 上的 openssl 中不起作用

    我想向 OpenSSL 添加 PKCS 11 引擎 并且我使用 CentOS 6 2 我实际上加载引擎没有任何问题 如下所示 root localhost 05 06 18 openssl 1 0 1e openssl engine t d
  • 我可以使用 git 克隆后出现的文件吗?

    我试图理解 make 问题 但不确定发生了什么 我不确定我遇到的是 make 问题还是 git 问题 如果我执行 git clone git git openssl org openssl git openssl git 然后我得到了 Op
  • EVP_get_cipherbyname 始终返回 null

    我打电话时遇到问题EVP get cipherbyname在 macOS 上 const char cipher str aes 256 cbc const evp cipher st cipher1 EVP aes 256 cbc con
  • 即使从 ca 目录删除 CA 后,starttls 仍成功

    我无法验证我的软件的正确行为 以下是我为验证操作是否正确而执行的步骤 我有使用 openldap 库并对 ldap 服务器执行启动 tls 的示例代码 我第一次设置了 ca cert 目录和 tlx 上下文的全局选项 之后 我对服务器执行了
  • 过去使用 OpenSSL 和 PHP 设置 notBefore 的 x509 证书

    签署证书请求的服务器的内部时钟显然比客户端时钟快几秒钟 因此 当我签署 CSR 时 我需要在证书中设置 不早于 几秒钟 我不想调回服务器的内部时钟 因为这看起来像是一个黑客解决方案 目前我使用以下命令签署 csr 并生成证书 usercer
  • jruby-openssl 中已初始化常量

    当在 Torquebox 上运行我的 Rails 应用程序时 我得到了很多 already initialized constant 警告源自gems jruby openssl 0 8 2 lib shared jruby openssl

随机推荐

  • ggplot 直方图相对于轴的位置不正确

    我试图这样绘制直方图 Todo lo haremos con base en un variable aleatoria Uniforme 0 1 set seed 26 n 10000 U lt runif n n Supongamos
  • 如何修改.NET Core中的文件访问控制

    我正在尝试更改 NET Core 中文件的权限 然而 似乎FileInfo https msdn microsoft com en us library system io fileinfo setaccesscontrol v vs 11
  • 如何使用 LinkedIn javascript sdk 检索包括所有字段的职位列表?

    我想要获取 LinkedIn 会员在其个人资料中输入的每个职位的 ID 头衔 摘要 开始日期 结束日期 当前状态和公司名称 我测试了一个查询休息控制台 https apigee com console linkedin我得到了想要的结果 查
  • 如何在打字时自动调整垂直离子输入字段的大小

    当我输入长文本时 ion input字段保持相同的高度 我只能看到可用可见区域中的文本 当我输入时 我希望输入字段根据其中的数据自动垂直调整为 2 行或 3 行 My page html code
  • 如何从 Visual Studio 2012 导出 C# 应用程序以在其他计算机上运行?

    我刚刚在 Visual Studio 2012 中制作了我的第一个 C 应用程序 我想以某种方式导出它 以便其他人可以在他们的计算机 包括没有 Visual Studio 2012 的计算机 中使用它 我该怎么做 我是 C 新手 找不到任何
  • 避免使用一本字典的更好代码 - 区分大小写问题

    我有以下方法用数据读取器的值填充字典 数据读取器字段和传递给方法的属性之间可能存在大小写不匹配的情况 在下面的方法中 我首先将属性转换为小写以解决此问题 这会导致两个字典 有没有更好的方法用一本字典来实现这一目标 private Dicti
  • 是否可以使用检测重新定义核心 JDK 类?

    我想重新定义字节码StackOverflowError构造函数 因此当堆栈溢出发生时我有一个 钩子 我想要做的就是在构造函数的开头插入对我选择的静态方法的单个方法调用 是否有可能做到这一点 您应该能够使用两种方法之一来完成此操作 除非在过去
  • CSS 中的 * 有什么作用?

    明星是做什么的 这叫什么 对我来说 这是某种通配符 它叫什么名字 以便我可以阅读它 div zoom 1 this zoom 1 display inline display inline and this whats the differ
  • 读取google地图返回的JSON数据

    在我的应用程序中 我使用 BlackBerry API 来获取纬度和经度 我想通过创建 http 连接使用 Google 地图进行反向地理编码 如何解析数据 然后读取特定元素 例如地址 示例网址 给出回应 name 9 600000 76
  • 如何将逗号分隔的列值与另一个表作为行连接

    我试图通过首先转换我正在成功执行的 SupplierId 列中的逗号分隔值来连接两个表 然而 当我尝试通过外键 DCLink 加入另一个带有供应商名称的表 Vendors 时 问题就出现了 这就是我的意思 原始表的 select 语句 SE
  • 如何推翻受歧视的工会

    我正在尝试对受歧视的联盟实施折叠 DU称为Expr 表示程序表达式 并且通常是递归的 我正在尝试编写一个折叠 以递归方式累积 Exprs 上的操作结果 下面是我尝试写的折叠 let rec foldProceduralExpr folder
  • 尽早检测有问题的 XIB 视图

    我的笔尖名称有一个拼写错误 当我推向导航控制器时 它在代码中被破坏了 弄清楚它并没有花太长时间 但我认为最好尽早断言格式良好 以便更容易弄清楚 问题是它不是零 它只是无法从笔尖正确地形成自己 在 initWithNib 之后是否有更好的断言
  • compose 未从react-apollo 导出

    我正在关注 youtube 上的 graphql 教程 https www youtube com watch v ed8SzALpx1Q https www youtube com watch v ed8SzALpx1Q大约3小时16分钟
  • node_redis CONFIG SET 命令

    我目前正在使用 redis 编写一个应用程序 但我遇到了 node redis 库的问题 特别是我无法弄清楚如何从 node redis 中使用 redis 命令 我已经尝试了以下所有 client send command CONFIG
  • 命名卷在 docker 中如何工作?

    我正在努力理解以下 docker 示例中的命名卷到底是如何工作的docs https docs docker com compose compose file volume configuration reference version 3
  • 如何使用 Mercurial 进行原始结帐?

    如何将工作目录状态恢复到存储库的新克隆的状态 显然我可以克隆我的存储库 但这似乎有点野蛮 使用 git 我会这样做 git clean xdn dry run to see what I m about to destroy git cle
  • 防止 rsync 删除与给定模式匹配的目标文件

    我正在使用 rsync 将文件从源同步到目标 rsync av delete source destination 我在目标端有一个目录 而不是在源端 我想阻止 rsync 删除此目录 是否有一个选项可以传递给 rsync 以防止该目录在同
  • Spring Rest-API - 403 禁止错误响应

    我是 Spring 新手 我正在编写 REST API 我收到 403 删除 放置禁止错误 以下是我正在处理的示例 RequestMapping value noteId method RequestMethod PUT public Re
  • 在 Flash 中动态更改视频播放速率

    我正在寻找一种方法 让 Flash 视频能够平滑地改变速度 从比原始帧速率慢到快 它只需要在Windows PC上运行 并且可以使用最新版本的Flash 10 2 with Stage Video Flash Media Server 提供
  • Openssl Asn1parse 无法正确提取数据

    使用 asn1parse 解码 openssl 数据时出现问题 使用 asn1parse 命令后 out pem 包含与预期输出不匹配 实际输出和预期输出如下所示 请帮助我解决这个问题 openssl asn1parse 通知 PEM in