IT点滴

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

关于CSP通过CpSetKeyParam存入证书相关问题

Posted on 2013-01-26 23:12  Ady Lee  阅读(489)  评论(0编辑  收藏  举报

CpSetKeyParam函数原型为:

 

BOOL CPSetKeyParam(

  __in          HCRYPTPROV hProv,

  __in          HCRYPTKEY hKey,

  __in          DWORD dwParam,

  __in          BYTE* pbData,

  __in          DWORD dwFlags

);

MSDN中说到当参数 dwParam KP_CERTFICATE时,导入证书。


KP_CERTIFICATE

pbData is the address of a buffer that contains the DER-encoded X.509 certificate. The public key in the certificate must match the corresponding signature or exchange key.

问题是参数 pbData数据的长度和格式是什么呢?在MSDN中没有相关方档说明。

 

问题答案是:证书二进制采用TLVTAG-LENGTH-VALUE)格式。证书二进制数据总是以0x30,0x82,SizeHighByte,SizeLowByte,….这些开头。证书大小不包括开始4个字节,因此应该加上4字节去计算证书的大小。

证书为DER编码