使用OpenSSL API,我已经从X.509v3证书中提取了一个自定义扩展:
X509_EXTENSION* ex = X509_get_ext(x509, 4);
X509_EXTENSION对象包含一个值(ex->value),该值是ASN.1 OCTET STRING。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 字符串?