Как определить, является ли сертификат сертификатом root - PullRequest
0 голосов
/ 06 марта 2020

Насколько я понимаю, если поля «Эмитент» и «Тема» совпадают, сертификат самоподписан и должен быть сертификатом 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 для имени эмитента. Любая ошибка в этом коде?

...