• 关于USBKEY的CSP学习


       CSP的框架已经定型,网上以及MSDN中也有很多关于CSP的详细资料简介。下面说一下自己学习CSP的经历,仅供参考……

          首先,要先了解一下CSP各个函数的作用、使用流程和怎么搭配使用,这些例子在网上跟MSDN中有很多。建议不要只看代码,亲自动手写一下,效果比较好。

          熟悉了CSP体系的框架,那就要实现自己的CSP的内容了。一般是关联硬件使用的。我所接触的是USBKEY。所以,我硬件是USBKEY为主的。具体的,我想每一个公司应该都有自己的一套的东西了,就不细说了。我说要说的是怎么去理解CSP使用的内容。

         一般来说,CSP的一些HASH算法、是由我们来决定的,我们定义了那一些HASH算法,那么在使用CSP的时候,就会有那些HASH 算法。一般MD5的摘要结果为16个字节,SHA1的摘要结果为20个字节,SM3的摘要结果为20个字节。通常我们会定义一个结构体来保存这些算法的的ALG_ID、默认密钥长度、最小密钥长度、最大密钥长度等内容。从这里我们可以知道CSP支持那一些HASH算法,当然如果是跟硬件打通信,硬件也必须的支持这些HASH算法的。配合相应的COS指令来进行通信。

        CSP的里一个重要的概念应该是容器跟算法对象吧。一般来说,下载证书 CSP会先判断容器是否存在,如果存在就先删除,然后再重新创建容器(创建容器 一般需要用户权限),生成密钥对,证书导入(一般设计都是密钥对和证书放在同一个容器里)……当然下载证书 走的是软算法,所以一般需要验签的过程。验签一般需要对HASH的结果补码跟硬件签完名的结果比较,如果一样,则说明数据是对的。至于HASH的结果补码的内容:一般是硬件里面的补码加验签结果。我们需要在程序里,保存硬件里面补码的数据,然后对签名的结果进行然算法解密,对解密的结果进行补码(硬件里面的补码),来有效验证数据的真实性。

          未完待续……

  • 相关阅读:
    Spring1()
    常用的比较器:实现方式Compareable和Comparator
    数据结构 2(数据结构 逻辑关系 存储关系 数据类型 抽象数据类型)
    面试题目
    数据结构(1术语)
    第一次作业-四则运算题目生成程序
    第二次 作业——APP案例分析
    面试题
    字符串转换时间的方法
    安卓获取手机内存,SD卡内存使用状态的方法
  • 原文地址:https://www.cnblogs.com/whbCNW/p/3636108.html
Copyright © 2020-2023  润新知