1、看懂密码机文档、DER格式 1天。花了很长时间去看所谓的ANSI标准,后来试用TLV方式来解析终于成功。
1.1、看懂D/X/Y/R/S 1天。先看了这个,再看RSA的原理及ECC原理
3、软件签名的印证(.net程序相互成功)。这个算是比较容易的。
3.1 其他程序及网页相互不成功 半天。网页、网上提供的现成数据、C程序与Net程序相互印证不成功,反复折腾了很久,主要是有些数据是DER格式,有些是直接合并XY/RS格式,需要手工转换。
2、做实验,双网卡 半天。主要是网络设置失败需要进机房,以及实验Socket的报文格式。
4、继续印证不同程序间的计算,如果不成功就无法找到真正的基准。分别测试了根据以下 根据D计算X/Y SM3 以上都通过后,猜想会不会是GetZ不同而引起,尝试只对散列结果的计算,印证终于成功! 1天
5、还发现有个软件有Bug,生成公私钥后不再从TxtBox读取,造成无论如果修改文本框都没变化
6、遗留问题,DER格式是如何生成的,为什么有些RS要在前面补充00?
6.1、周六去配置密码机,设备IP后网络断开,进机房测试发现是第二个网卡不能设置网关
7、测试密码机,结果发现ED指令不成功,反复实验证明该密码机不支持这个指令!而这个正是根据摘要进行签名的操作。E5指令返回的签名无法验证,原因是Z值的计算搞不清楚(周一)
8、与智芯、广州天安、北京天安沟通,拿到Github项目
9、Github项目是基于OpenSSL的C语言,折腾编译过程
10、编译出Lib和DLL后,再编译Demo程序&#