我正在尝试使用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->算法中提取签名。我试图从那里获取数据,但我有相同的结果。数据中的一些数据,在其他地方为零。此外,这些信息真的是签名吗?从名称来看,那里有关于公钥的信息。
答案 0 :(得分:1)
所以我的问题是这个。我可以用什么功能从OID中提取NID?
我相信您要查找的功能有OBJ_nid2obj
,OBJ_obj2nid
,OBJ_txt2nid
和朋友。它们可以在<openssl src dir>/crypto/objects/objects.h
中找到。
它们上的OpenSSL文档位于OBJ_nid2obj(3)
。