小弟要开发一个windows2k下的CSP,因为CSP必须要微软签名才能够在windows2k下使用,使用微软SDK中提供的CSPSIGN.EXE来签名,使用CSPSIGN.EXE验证签名没有问题,但当调用CryptAcquireContext()函数使用这个CSP时,返回值为 0x80090006L(The provider DLL signature could not be verified. Either the DLL or the digital signature has been tampered with.),如果使用其他的CSP就没有这个问题,开发过CSP的,能否告知小弟该如何去做?

解决方案 »

  1.   

    说句老实话,我去年毕业后我也开发过CSP,并且现在已经可以用来申请证书和做CA用
      

  2.   

    那SDK包中的CSPSIGN.EXE是做什么用的呢?
      

  3.   

    我最后再说一点,签名时你给微软DLL,他给你签名文件
      

  4.   

    那你们测试的时候是怎么做的?是不是dll文件稍有变化,签名文件就要变?
      

  5.   

    你自己写一个批处理吧,每次改动过都要进行签名。如果要调试下有两种方法:1.用CSPSign签名完后注册
    2.如果使用XP或以上版本,使用Windebug/KD进入内核调试模式,进入这个模式后,advapi32.dll回屏蔽签名校验
      

  6.   

    to congling(congling):
    我是用cspsign签名的,而且签名完后,用cspsign来验证也没有问题,但是调用advapi32.dll的函数CryptAcquireContext()时就返回了0x80090006L(The provider DLL signature could not be verified. Either the DLL or the digital signature has been tampered with.)这样的错误。
      

  7.   

    CSP就是Cryptographic Service Providers