微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Openssl Asn1parse无法正确提取数据

如何解决Openssl Asn1parse无法正确提取数据

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

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

cat base64.pem MIIDmQYLKoZIhvcNAQkQASugggOIBIIDhHsKICAgICJpZXrmlXN6dHAtY29udmV5ZWQtaW5mbzpvbmJvYXJkaW5nLWluZm9ybWF0aW9uIjogewogICAgICAgICjib290LWltYWdlIjogewogICAgICAgICAgICAiZG93bmxvYWQtdXJpIjogWwogICAgICAgICAgICAgICAgImh0dHBzOi8vZXhhbXBsZS5jb20vbXktYm9vdC1pbWFnZS5pbWciCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpbWFnZS12ZXJpZmljYXRpb24iOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImhhc2gtYWxnb3JpdGhtIjogImlldGYtc3p0cC1jb252ZXllZC1pbmZvOnNoYS0yNTYiLAogICAgICAgICAgICAgICAgICAgICJoYXNoLXZhbHVlIjogImYwOmY3OjVlOjM0OjUzOmMwOjExOjcyOmUzOmNmOmUxOmQ5OjNhomrjOmM3OmJmOmI1OmM2OjdmOjE3OjZmOjdlOjMwOjc1OjBhOjEzOjQyOjE2OjM0OjI0OjljOjJkIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAicHJlLWNvbmZpZ3VyYXRpb24tc2NyaXB0IjogIkl5OWlhVzR2WW1GemFBcGxZMmh2SUNKcGJuTnBaR1VnZEdobElIQnlaUzFqYjI1bWFXZDFjbUYwYVc5dUxYTmpjbWx3ZEM0dUxpSUsiLAogICAgICAgICJjb25maWd1cmF0aW9uLWhhbmRsaW5nIjogIm1lcmdlIiwKICAgICAgICAiY29uZmlndXJhdGlvbiI6ICJQSFJ2Y0NCNGJXeHVjejBpYUhSMGNITTZMMlY0WVcxd2JHVXVZMjl0TDJOdmJtWnBaeUkrQ2lB Z1BHRnVlUzE0Yld3dFkyOXVkR1Z1ZEMxdmEyRjVMejRLUEM5MGIzQStDZz09IiwKICAgICAgICAicG9zdC1jb25maWd1cmF0aW9uLXNjcmlwdCI6ICJJeTlpYVc0dlltRnphQXBsWTJodklDSnBibk5wWkdVZ2RHaGxJSEJ2YzNRdFkyOXVabWxuZFhKaGRHbHZiaTF6WTNKcGNIUXVMaTRpQ2c9PSIKICAgIH0KfQ ==

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

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

cat out.pem GVudC1va2F5Lz4KPC90b3A + Cg ==“, “后配置脚本”:“ Iy9iaW4vYmFzaAplY2hvICJpbnNpZGUgdGhlIHBvc3QtY29uZmlndXJhdGlvbi1zY3JpcHQuLi4iCg ==” } }

预期out.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” image-verification“:[\ n {\ n” hash-algorithm“:” ietf-sztp-conveyed-info:sha-256“,\ n” hash-value“:” 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” pre-configuration-script“:” Iy9iaW4vYmFzaAplY2hvICJpbnNpZGUgdGhlIHByZS1jb25maWd1cmF0aW9uLXNjcml-N,“” \“ “配置”: “PHRvcCB4bWxucz0iaHR0cHM6L2V4YW1wbGUuY29tL2NvbmZpZyI + CiAgPGFueS14bWwtY29udGVudC1va2F5Lz4KPC90b3A + CG ==” \ n “后配置脚本”: “Iy9iaW4vYmFzaAplY2hvICJpbnNpZGUgdGhlIHBvc3QtY29uZmlndXJhdGlvbi1zY3JpcHQuLi4iCg ==” \ n } \ n}'

解决方法

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

如果您处于* nix环境中,则可以使用fold工具进行换行。您可以使用换行来创建输入文件的其他版本,也可以使用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=="
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。