使用加密++解码ASN.1

问题描述 投票:0回答:1

我尝试将ASN.1序列“ AgER”转换为CryptoPP::Integer

#include <crypto++/asn.h>
#include <iostream>

int main(int, char*[])
{
    std::string base64{"AgER"};

    CryptoPP::StringSource s{base64, true};
    CryptoPP::BERSequenceDecoder d{s};
    CryptoPP::Integer i;
    i.BERDecode(d);

    std::cout << i.ConvertToLong() << std::endl;
}

这会引发类型为CryptoPP::BERDecodeErr的异常,并显示消息“ BER decode error”。

各种ASN.1工具可以毫无问题地解析字符串:https://lapo.it/asn1js/#AgER

crypto++ asn.1
1个回答
0
投票

我发现Crypto ++需要二进制数据,而不是Base64编码。因此,我之前必须对此进行解码。

© www.soinside.com 2019 - 2024. All rights reserved.