使用OpenSSL通过OID从X.509证书中提取自定义扩展

使用OpenSSL通过OID从X.509证书中提取自定义扩展,openssl,x509,asn.1,Openssl,X509,Asn.1,我已经能够通过索引从X.509证书中提取自定义扩展名,其中包含: X509_EXTENSION* ex = X509_get_ext(x509, extension_index); 如何通过其OID而不是索引提取扩展?使其能够处理以下内容: int my_nid = OBJ_create("1.2.3.4", "MyShortObjectName", "My Long Object Name"); int my_idx = X509_get_ext_by_NID(x509, my_nid, -

我已经能够通过索引从X.509证书中提取自定义扩展名,其中包含:

X509_EXTENSION* ex = X509_get_ext(x509, extension_index);

如何通过其OID而不是索引提取扩展?

使其能够处理以下内容:

int my_nid = OBJ_create("1.2.3.4", "MyShortObjectName", "My Long Object Name");
int my_idx = X509_get_ext_by_NID(x509, my_nid, -1);
X509_EXTENSION* ex = X509_get_ext(x509, my_idx);

让它与以下内容一起工作:

int my_nid = OBJ_create("1.2.3.4", "MyShortObjectName", "My Long Object Name");
int my_idx = X509_get_ext_by_NID(x509, my_nid, -1);
X509_EXTENSION* ex = X509_get_ext(x509, my_idx);