Когда вы используете gcc + gnu-binutils + openssl, вы можете использовать ld для включения файлового литерала в программу.Затем вы используете d2i_X509 для анализа литерала в структуру X509.
Первый запуск ld -r -b binary -o cert.crt.o cert.crt
(cert.crt ДОЛЖЕН быть в форме DER, я не знаю, является ли .crtправильное расширение для DER).
example.c
#include <openssl/x509.h>
#include <stdio.h>
extern unsigned char _binary_cert_crt_start[];
extern unsigned char _binary_cert_crt_end[];
int main()
{
X509 *cert;
const unsigned char *buf = _binary_cert_crt_start;
unsigned const char** inp = &buf;
cert = d2i_X509(NULL, inp, _binary_cert_crt_end-_binary_cert_crt_start);
printf("%p\n", cert);
return !cert;
}
Затем вы компилируете эту программу с помощью gcc -o ct example.c cert.crt.o -lcrypto
.