Насколько я понимаю, если поля «Эмитент» и «Тема» совпадают, сертификат самоподписан и должен быть сертификатом root. Я пытаюсь сделать это сравнение в коде, но сталкиваюсь с проблемами.
m_X509_NAME *R_CDECL2 = X509_get_subject_name( ps_X509Cert);
X509_NAME *R_CDECL2_issuer = X509_get_issuer_name((X509*) ps_X509Cert);
X509_NAME_get_text_by_NID( R_CDECL2, NID_commonName, subjectName, MAX_BUF_SIZE);
printf("\n-------------\n subjectName: %s \n--------------\n", subjectName);
b_X509_NAME_get_text_by_NID( R_CDECL2_issuer, NID_commonName, issuerName, MAX_BUF_SIZE);
printf("\n-------------\n issuerName: %s \n--------------\n", issuerName);
При использовании приведенного выше кода имя субъекта печатается, как и ожидалось. Но код падает при выполнении b_X509_NAME_get_text_by_NID для имени эмитента. Любая ошибка в этом коде?