Используя API OpenSSL, я извлек пользовательское расширение из сертификата X.509v3 с помощью:
X509_EXTENSION* ex = X509_get_ext(x509, 4);
Объект X509_EXTENSION содержит значение (ex-> value), которое является OCTET ASN.1STRING.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?