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 文字列を取得するにはどうすればよいですか?