如何在不使用第三方库中从C#中的证书撤销列表中提取序列号列表



我已经连接到MS PKI证书撤销列表分发点并获得了CRL

在不使用第三方库中提取序列号列表的最直接方法是什么?

您将必须使用未管理的加密函数(当然是通过p/indoke)来展开CRL。通常,您必须逐步进行以下高级高级:

  1. certCreateCrlContext-此功能将返回指针到crl_context结构。
  2. 使用Marshal.PtrToStructure .NET方法将CRL_CONTEXT结构的pCrlInfo指针转换为CRL_INFO结构。
  3. rgCRLEntry是指针的数组(数组大小由cCRLEntry的CC_6成员确定)。
  4. 通过通过CRL_ENTRY结构的大小来启动指针来迭代该数组。
  5. CRL_ENTRYSerialNumber成员是一个字节数组。您可以直接使用Marshal.Copy(IntPtr, Byte[], Int32, Int32)方法将非托管数组复制为托管。这将为您提供序列号。重复每个CRL条目的步骤4-5。

不要忘记通过调用CERTFREECRLCONTEXT函数来释放指向CRL_CONTEXT结构的指针,以防止内存泄漏。

相关内容

  • 没有找到相关文章

最新更新