使用openssl api从证书中解析签名算法

时间:2014-06-17 14:03:30

标签: openssl certificate

我正在尝试使用OpenSSL API解析this certificate,而sig_alg给我带来了麻烦。

通过PEM_read_bio_X509调用向OpenSSL库提供整个证书,但是cert-> sig_alg-> algor->算法的NID,SN和LN字段都是NULL,而长度是8,数据指向8个字节,我认为举行OID。

所以我的问题是这个。我可以用什么功能从OID中提取NID?

我认为我可以用d2i_ASN1_OBJECT来做,但我认为这只是将数据aray复制到新的或提供的asn1对象而不解释数据。而且我不相信我必须构建我自己的众所周知的OID列表,就像我认为它已经完成here(实际上并不精通PHP)。

在旁注中,this site指示用户从cert-> cert_info-> key-> algor->算法中提取签名。我试图从那里获取数据,但我有相同的结果。数据中的一些数据,在其他地方为零。此外,这些信息真的是签名吗?从名称来看,那里有关于公钥的信息。

1 个答案:

答案 0 :(得分:1)

  

所以我的问题是这个。我可以用什么功能从OID中提取NID?

我相信您要查找的功能有OBJ_nid2objOBJ_obj2nidOBJ_txt2nid和朋友。它们可以在<openssl src dir>/crypto/objects/objects.h中找到。

它们上的OpenSSL文档位于OBJ_nid2obj(3)