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?