我已连接到 MS PKI 证书吊销列表分发点并获得了 CRL
在不使用第三方库的情况下从 CRL 中提取序列号列表的最直接方法是什么?
我已连接到 MS PKI 证书吊销列表分发点并获得了 CRL
在不使用第三方库的情况下从 CRL 中提取序列号列表的最直接方法是什么?
您必须使用非托管 CryptoAPI 函数(当然,通过 p/invoke)展开 CRL。通常,您必须逐步执行以下高级操作:
Marshal.PtrToStructure
.NET 方法将结构pCrlInfo
指针转换CRL_CONTEXT
为CRL_INFO
结构。rgCRLEntry
是一个指针数组(数组大小由 的cCRLEntry
成员决定CRL_INFO
)。CRL_ENTRY
。SerialNumber
的成员CRL_ENTRY
是一个字节数组。您可以直接使用Marshal.Copy(IntPtr, Byte[], Int32, Int32)
方法将非托管数组复制到托管。这会给你序列号。对每个 CRL 条目重复步骤 4-5。完成后不要忘记CRL_CONTEXT
通过调用CertFreeCRLContext函数释放指向结构的指针,以防止内存泄漏。