[英]Check if Certificate Signature is MD5 OpenSSL
我需要检查X509证书的签名算法是MD5还是SHA。 为此,我知道我可以提取与签名算法相对应的NID:
int sig_nid = OBJ_obj2nid(cert->sig_alg->algorithm);
现在的问题是,我似乎找不到一种简单的方法来将其与MD5或SHA进行比较,因为我相信可以为签名返回多个NID。 有没有简单的方法可以比较此NID或可以找到所有MD5和SHA NID以便我自己进行长时间比较的地方?
我想这就是您的追求: http : //www.alvestrand.no/objectid/1.2.840.113549.1.1.html它列出了可用于X509证书的哈希/加密。 您可以使用OBJ_txt2nid()
生成要比较的nids。
因此,您想将算法nid与OBJ_txt2nid("1.2.840.113549.1.1.4")
-或在实践NID_md5WithRSAEncryption
(在openssl/objects.h
定义)进行比较
编辑:仅添加一些信息: X509v3 RFC引用了定义“可接受的”算法的其他RFC。 这些是RFC3279 , RFC4055和RFC4491 。 它们都包含可以使用的OID。 似乎只有第一个似乎使用MD5哈希定义方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.