@MrGomez: Спасибо за ссылку. Дикие лошади не могли перетащить меня обратно в OpenSSL API :)

ьзуя API OpenSSL, я извлек пользовательское расширение из сертификата X.509v3 с помощью:

X509_EXTENSION* ex = X509_get_ext(x509, 4);

Объект X509_EXTENSION содержит значение (ex-> value), которое является ОСТЕТОВОЙ СТРОКОЙ ASN.1. OCTET STRING содержит кодированную DER строку UTF-8. Я пытаюсь декодировать строку OCTET, чтобы получить простую строку UTF-8.

Я пробовал несколько вещей, таких как:

ASN1_STRING_to_UTF8(&buf, ex->value);

а также

M_ASN1_OCTET_STRING_print(bio, ex->value);
int len = BIO_read(bio, buf, buf_size);
buf[len] = '\0';

Они оба дают мне кодированную DER строку. Как мне получить простую строку UTF-8?

Ответы на вопрос(1)

Ваш ответ на вопрос