openssl: как прочитать файл .crt ..? - PullRequest
4 голосов
/ 05 апреля 2011

Я хочу прочитать файл certifi.crt, используя OpenSSL API (не в командах). Я понятия не имею, как это сделать. Если кто-нибудь знает, пожалуйста, помогите мне. Спасибо.

Если вы приведете пример кода, который будет очень полезен.

1 Ответ

4 голосов
/ 07 апреля 2011

Если расширение ".crt" относится к текстовому файлу PEM (начинается с ----- BEGIN CERTIFICATE -----, а затем base64), то приступайте к работе с документами OpenSSL здесь .

Вот код, с которого можно начать (ссылка с помощью ssl, например, g ++ ac -lssl):

#include <stdio.h>
#include <openssl/x509.h>
#include <openssl/pem.h>

int main(int argc, char** argv)
{
    FILE* f = fopen("certifi.crt", "r");
    if (f != NULL)
    {
        X509* x509 = PEM_read_X509(f, NULL, NULL, NULL);
        if (x509 != NULL)
        {
            char* p = X509_NAME_oneline(X509_get_issuer_name(x509), 0, 0);
            if (p)
            {
                printf("NAME: %s\n", p);
                OPENSSL_free(p);
            }
            X509_free(x509);
        }
    }
    return 0;
}
...