求助:关于删除数字证书,对Microsoft的Platform SDK: Security比较熟悉的大侠请进,谢谢!
sct 2004-05-05 08:35:17 我的一个涉及用数字证书实现加密等操作的程序中要实现一个功能:
删除用户已经安装的数字证书,
我是用CertDuplicateCertificateContext来实现的,
当证书是他人的只包含其公钥的证书时,没有什么问题;
但是当证书是自己的包含私钥的证书时,相应的私钥没有被删掉;
在安装包含私钥证书的时候,会在系统目录(XP,2000应该类似)
C:\Documents and Settings\Administrator\
Application Data\Microsoft\SystemCertificates\My\Certificates
下产生一文件A
在
C:\Documents and Settings\Administrator\
Application Data\Microsoft\SystemCertificates\My\Keys
下产生一文件B
用CertDuplicateCertificateContext来删除证书时,
只是删除了文件A,而B文件尚在,
为了避免混乱,我希望我的程序在删除证书的同时删除相应的私钥,
但是我在Platform SDK: Security却找不到可用的函数,
函数CryptDestroyKey是销毁私钥,但这是另外一个概念,它并不会删除掉文件B,
哪位大侠对这方面了解多一些,请给我一些建议和帮助,谢谢!
------------------------------------------------------------------
我试了一下,在Windows的IE中删除证书时,相应的私钥文件也没有被删除掉。