(一)签章部分
1、验证PIN码
2、通过印章ID从Key里获取印章的信息
3、验证签章人证书的有效性
1、证书信任链验证
2、证书有效期验证
3、证书是否被吊销(还没实现)
4、算法OID对比
4、验证电子印章的合规性和有效性
1、验证电子印章签名值是否正确
1、组印章签名信息中被签名内容的结构体(包括印章信息和制章人公钥和算法ID)
2、对上面的内容做摘要
3、通过制章人公钥,摘要,签名值验证签名值的正确性
2、验证电子印章制章人证书的有效性
1、证书信任链验证
2、证书有效期验证
3、证书是否被吊销(还没实现)
4、算法OID对比
3、验证电子印章的有效期( 判断印章有效起始日期和有效终止日期,验证电子印章是否过期)
5、组7项,即待签章的数据(包括版本号,印章数据,时间信息,原文杂凑值,原文属性信息,签章人数字证书,签名算法标识)
6、对待签章数据进行ECC签名获得签名值
7、组电子签章数据(包含待签章数据和对待签章数据的签名值)
(二)验签部分
1、验证PIN码
2、验证印章数据格式合规性(DER解码就行)
3、电子验章流程验证
1、验证签章人证书的有效性(其中验证签章人证书的有效性是和当前时间比较会有问题么?)
2、验证签章时间有效性(签章时间和签章人证书的有效期比较)
3、电子印章验证
1、验证电子印章签名值是否正确
1、组印章签名信息中,被签名内容的结构体(包括印章信息和制章人公钥和算法ID)
2、对上面的内容做摘要
3、通过制章人公钥,摘要,签名值验证签名值的正确性
2、验证电子印章制章人证书的有效性
1、证书信任链验证
2、证书有效期验证
3、证书是否被吊销(还没实现)
4、算法OID对比
3、验证电子印章的有效期(分在线和离线两种)
1、离线:通过印章有效期,印章制作时间和当前时间比较,验证电子印章是否过期
2、在线:通过调用服务器获取数据通过判断状态等信息来判断是否有效
4、根据签章数据获取版本号、待签章数据、章的公钥、对待签章数据的ECC签名值
5、对获取的待签章数据做摘要
6、根据入参组7项,即待签章数据,然后对该部分的待签章数据做摘要
7、判断摘要是否相等,不相等则返回
8、通过章的公钥和6的摘要和4获取的签名值做ECC验签