在C+中将PEM证书格式转换为DER格式+;

在C+中将PEM证书格式转换为DER格式+;,c,encryption,certificate,stm32,C,Encryption,Certificate,Stm32,我正在尝试转换PEM证书--- 到 DER格式{ 0x30,0x82,0x03,0xD7,0x30, } 用于STM微控制器。。是否有任何库或示例。PEM实际上是一个Base64编码的DER,因此您只需删除证书页眉和页脚(开始证书行、结束证书行)并调用一些Base64解码器(更多详细信息请参见此处:)。如果你想要一些库,你可以找一些类似mbedtls的东西:检查mbedtls_x509_crt_parse(),我想你可以使用openssl bio_u函数。查看x509或pkcs7工具的源代码,了

我正在尝试转换PEM证书---

DER格式{ 0x30,0x82,0x03,0xD7,0x30, }


用于STM微控制器。。是否有任何库或示例。

PEM实际上是一个Base64编码的DER,因此您只需删除证书页眉和页脚(开始证书行、结束证书行)并调用一些Base64解码器(更多详细信息请参见此处:)。如果你想要一些库,你可以找一些类似mbedtls的东西:检查mbedtls_x509_crt_parse(),我想你可以使用openssl bio_u函数。查看x509或pkcs7工具的源代码,了解库的用法。顺便说一句,对于这样的双引号字符串,您不需要
\0
,它是由编译器添加的。正确答案中的0xd7变为0xd1。如果您想从微控制器执行此操作,WolfSSL具有此类功能。如果您可以在PC上执行此操作,然后使用已转换的证书,则可以使用OpenSSL在PC上进行转换。请查看mbeddTLS。它包含在STMicro代码示例包(STM32 Cube)中
char cert[] = "-----BEGIN CERTIFICATE-----\n"
        "MIID0TCCArmDQEBCwUAMDwxFzAVBgNV\n"
        "BAMMDmp1YW5nYnVyZ29zIENBMSEwHwYDVQQKDBhqdWFuZ2J1cmdvcyBPcmdhbml6\n"
        "-----END CERTIFICATE-----\0";