Decoding un ASN.1 DER OCTET STRING con OpenSSL

Usando la API OpenSSL, he extraído una extensión personalizada de un certificado X.509v3 con:

X509_EXTENSION* ex = X509_get_ext(x509, 4);

El objeto X509_EXTENSION contiene un valor (ex-> valor) que es un ASN.1 OCTET STRING. OCTET STRING contiene una cadena UTF-8 codificada DER. Estoy tratando de decodificar la OCTET STRING para obtener la cadena UTF-8 simple.

He intentado algunas cosas, como:

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';

Estos dos me dan la cadena codificada DER. ¿Cómo obtengo la cadena simple UTF-8?

Respuestas a la pregunta(1)

Su respuesta a la pregunta