211 Star 1.4K Fork 519

GVPofdrw / ofdrw

 / 详情

SESV4ValidateContainer 验签问题

已完成
创建于  
2022-03-14 12:46

byte[] expectDataHash = toSign.getDataHash().getOctets();
byte[] expSigVal = sesSignature.getSignature().getOctets();

上述两步ASN1BitString对象中padBits取值不为0时,取值.getOctets()会抛异常“attempt to get non-octet aligned data from BIT STRING”

评论 (8)

zxpsky 创建了任务

由于存储限制,最小存储单位为字节8Bit,而SM2、SM3算法也只接受以字节为单位的入参和出参,因此此处BIT STRING通常来说难以有效利用填充不为0也就是不足 8Bit的情况。

因此从应用角度来说该方式工程实用价值较低,只具有理论的可能性。

输入图片说明
输入图片说明

  • dataHash作为一个杂凑值,也就是Hash运算结果,也不会出现数据长度不足整字节的情况。
  • signature 值也是同样的。

非常感谢回复。
个人实测情况已经发现多个文件出现了padBits不为0的情况;通过其他验证方式可以确认文件验签,包括算法、证书等方面没有问题。
因此所以关于:dataHash和signature 不可能出现不足整字节的情况,是否还有其它原因呢

该问题暂无找到原因,与签名开发厂家对签名实现有关。

Cliven 任务状态待办的 修改为已完成
zxpsky 任务状态已完成 修改为进行中

其他验证方式是?

CFCA和数科商业SDK组件的的验签验证;另外新版WPS打开后对电子签章的验签与展示。

可以私发ofd给我看看

Cliven 任务状态进行中 修改为已完成

bitString.getPadBits() == 0 ? bitString.getOctets() : bitString.getBytes()

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(5)
1012814 trisia 1659609057
Java
1
https://gitee.com/ofdrw/ofdrw.git
git@gitee.com:ofdrw/ofdrw.git
ofdrw
ofdrw
ofdrw

搜索帮助

344bd9b3 5694891 D2dac590 5694891