EnvelopedCms可用于识别加密证书吗?

时间:2018-04-13 11:00:03

标签: encryption certificate

我正在研究接收加密文件的.NET系统,我正在使用EnvelopedCms对象解密它们。

解密过程工作正常,但我希望能够确定发件人在加密时实际使用的证书的指纹。

这样做的原因是,当证书即将到期时,并且要求发件人使用新证书,该证书的有效起始日期与过期证书的有效期重叠,我想能够识别哪些发送者已经切换,哪些发送者没有。

在旧证书实际到期之前,两个私钥都可用,因此无论使用哪个私有密钥,该文件都将成功解密。

我目前的代码是:

Hotel

“data”包含cyphertext,“MyCertificate”包含我们希望他们使用的证书的指纹,并且“ActualEncrpytionCertificate”的目的是包含他们实际使用的证书的指纹,但正如您所看到的,这是目前只是一个占位符。

我查看了EnvelopedCms对象的属性,希望找到一个证书集合,但这不存在。有一个RecipientInfos集合,但这似乎不包含有关加密证书的任何信息。

我是否隐瞒了什么,或者是否有其他方法可以从EnvelopedCms对象中识别证书?

1 个答案:

答案 0 :(得分:0)

API不会发出匹配的证书,接受证书的import dlib import cv2 from lib.capture import Capture win = dlib.image_window() cap = Capture() # Capture image from webcam cap.start() while(True): frame = cap.get() # Get current frame from webcam if frame is not None: frame = cv2.flip(frame, 1) frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR) # Converting from RGB to BGR (as dlib.image_window requires) win.set_image(frame) # Display the resulting frame 重载仍将始终在Windows证书存储中搜索,因此唯一真正可行的选项是根据RecipientInfo值进行匹配

请注意,Decrypt匹配有两种不同的实现方式。第一个更有效,因为它不会在垃圾收集器中抛出额外的数据。第二个是生命周期管理在IssuerAndSerialNumberSubjectKeyIdentifier变体中是对称的。如果您在调用IssuerAndSerialNumber之后不需要将证书退还给任何人,那么您可能需要第一个(因为您不需要关心谁/不会调用FindRecipientCerts

Dispose

用C#回答你的VB问题道歉。