@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?