新闻资讯

提供最新的公司新闻、行业资讯、API产品、帮助支持等信息

联系我们

CAPICOM开发指引——证书管理及数字签名

今日详细介绍怎么使用CAPICOM开展证书管理方法和数据签名。CAPICOM组件有诸多属性和方式 ,在这儿不太可能一一详细介绍,本文并不是组件的插口指南,只是要根据详细介绍一两个关键组件的方式 ,让大伙儿掌握启用CAPICOM的基础方式 和构思。实际开发设计时,诸位还必须参照实际文本文档。

证书管理方法牵涉到CAPICOM种类杜兰特的Store、Cerificates和Certificate好多个组件。Store为证书库组件,Cerificates是证书结合组件,Certificate便是证书组件了。回到本机里全部的证书结合,选用下边的编码就可以(以VB启用为例子):

Dim s_store As New CAPICOM.Store

Dim certs As Certificates

s_store.Open CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY

Set certs = s_store.Certificates

这里边关键的编码是证书库组件Store的Open方式 ,用于开启证书储存。这一方式 有三个主要参数。第一个主要参数是StoreLocation,代表开启证书储存的部位,赋值及代表的含意以下表。

开发设计时常见的赋值是CAPICOM_LOCAL_MACHINE_STORE和CAPICOM_CURRENT_USER_STORE,缺省值是CAPICOM_CURRENT_USER_STORE。

第二个主要参数是StoreName,代表要开启的证书储存的名字,即特定开启哪一个证书储存,赋值及代表的含意以下表。

查看IE电脑浏览器的证书储存(前边的文章内容详细介绍过),就可以更清晰地了解所述主要参数赋值的含意。缺省值是CAPICOM_MY_STORE。

第三个主要参数是OpenMode,代表证书储存的开启方式,赋值及代表的含意以下表。

在其中,后边2个主要参数赋值能够 和前三个赋值用或实际操作合拼取值。主要参数缺省值是CAPICOM_STORE_OPEN_READ_ONLY,即写保护开启。能够 看得出,启用Store组件的Open方式 可以不传到一切主要参数,这也就是CAPICOM的特性,用缺省值设定最常见的应用领域,以较大 水平地减少开发设计的难度系数。

启用Open方式 后,就可以根据Store组件的Certificates属性获得证书结合。解析xml这一结合对象,获得结合里的每一个Certificate对象原素,例如下边的编码。

Dim s_Cer As Certificate

For Each s_Cer In certs

//处理方式

......

End If

Next

根据Certificate对象,就可以浏览和应用证书的各类作用了。例如以下编码:

//证书持有者的通称

s_Cer.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME)

//证书授予者的全名

s_Cer. IssuerName

//证书截至有效期限

s_Cer.ValidToDate

//显示信息证书

s_Cer.Display

获得证书对象后,就可以应用证书相匹配的密匙开展数据签名了。这里边牵涉到的SignedData组件和Signer组件。完成签名的编码也非常简单。

Dim sd As New SignedData

sd.Content = InputMsg

Dim dispSigner As New Signer

dispSigner.Certificate = s_Cer.

signature = sd.Sign(dispSigner, True, CAPICOM_ENCODE_BASE64)

SignedData对象是进行签名作用的关键组件,它的Content属性代表造成数据签名的全文,因而签名前必须将全文取值给它。Signer对象代表签名的客户,实际上就可以了解成转化成签名的证书,它的默认设置属性也就是Certificate。前边文章内容详细介绍过,数据签名具体是启用证书所相匹配的公钥,因此一定要应用开启本人证书储存获得的证书结合里的证书原素对象为Signer.Certificate属性取值,而根据别的方法获得的证书对象是沒有相匹配公钥的,不可以用于签名。前边2个属性设定好后,就可以启用SignedData对象的Sign方式 开展签名。Sign方式 也包括三个主要参数,一样全是可选择的。第一个主要参数是Signer,即代表转化成签名的证书的Signer组件对象,如果不设定此参数,启用方式 时系统软件会弹出来证书提示框让客户挑选要用于签名的证书;

第二个主要参数是bDetached,表明全文和签名結果是不是分离出来。假如为True,表明签名結果里不包含全文,不然包括。这一主要参数的缺省值是False,但在具体运用中这儿一般应当传True,由于认证签名时密文全是由外界传到,而不容易用签名結果里的密文;第三个主要参数是EncodingType,代表数据签名結果的编码方法,赋值及代表的含意以下表。

缺省值是CAPICOM_ENCODE_BASE64,那样可用的范畴更为普遍,非常是对于手机客户端脚本制作启用自然环境。Sign方式 取得成功后,将回到以特定方法编号的签名結果,不然会抛出去不正确。

数据签名认证编码以下:

sd.Content = InputMsg

sd.Verify signature, True, CAPICOM_VERIFY_SIGNATURE_ONLY

和Sign方式 一样,认证签名前必须将全文取值给SignedData对象的Content属性。数据签名的认证启用SignedData对象的Verify方式 ,第一个主要参数SignedMessage为待认证数据签名;第二个主要参数是bDetached,实际意义与Sign方式 的bDetached主要参数一致,运用时赋值也务必和Sign方式 一样;第三个主要参数是VerifyFlag,用于标志认证方法,赋值及代表的含意以下表。

VerifyFlag的缺省值是CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE,但在具体运用时,认证证书实效性很有可能会产生一些繁杂的結果,因此这儿强烈推荐应用CAPICOM_VERIFY_SIGNATURE_ONLY,证书的实效性能够 独立来认证。此方式 沒有回到結果,假如验证失败,会抛出去实际不正确,不然说明验证通过。数据签名假如验证通过,能够 根据浏览SignedData对象的Signers属性回到签名所应用的证书结合。这儿要表明的是,启用Sign方式 签名时传到的是Signer对象,但认证时回到的是Signers对象,即Signer对象的结合,是由于SignedData对象适用根据启用CoSign方式 完成多客户会签。

证书管理方法及其数据签名是最基础的,也是最常见的CAPICOM运用案例。坚信大伙儿如今对CAPICOM的应用应当有一定的了解了,整体而言還是非常简单的。如果有一切难题,热烈欢迎在发表评论交流讨论。

文章转载自网络,如有侵权,请联系api@1dq.com删除

现在注册,免费试用所有产品

免费体验

电话咨询

关注我们

微信公众号