有谁知道用C#如何从x509证书(实际上在x509Store中而不是从文件中进行验证)获取数字签名值,并在例如文本框中显示它。我知道GetRawCertDataString()返回整个x509证书的原始数据,该证书的最后一行包括数字签名,但是我找不到仅返回数字签名的命令。
最佳答案
最好的方法是获取ASN.1解析器并提取数字签名,或进行一些p /调用操作。您将需要使用CryptDecodeObject函数并将X509_CERT
作为lpszStructType
参数传递。该函数(在pvStructInfo
中)返回指向CERT_SIGNED_CONTENT_INFO结构的指针。此结构具有Signature
字段,这是一个简单的BIT_BLOB
结构,在cbData
和pbData
字段中具有字节数组(使用Marshal.Copy
将字节从非托管内存复制到托管字节数组)。