使用 OpenSSL API,我从 X.509v3 证书中提取了一个自定义扩展,其中包含:
X509_EXTENSION* ex = X509_get_ext(x509, 4);
X509_EXTENSION 对象包含一个 ASN.1 OCTET STRING 值(ex->value)。OCTET STRING 包含一个 DER 编码的 UTF-8 字符串。我正在尝试解码 OCTET STRING 以获得纯 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 字符串?