Skip to main content

Module crypto

Module crypto 

Source
Expand description

杂凑算法与编码工具(供签名完整性校验使用)。

OFD 数字签名(见 GB/T 33190—2016 第 18 章)在 Signature.xml 中以 References/Reference/CheckValue 给出每个被保护文件的摘要值,摘要算法由 References@CheckMethod 指定。国内电子发票/版式文件普遍采用国密 SM3 (OID 1.2.156.10197.1.401),CheckValue 为 SM3 摘要的 Base64 文本。

为避免引入额外的密码学依赖,这里给出自包含的 SM3(GB/T 32905—2016)实现 与标准 Base64 编码,足以完成“重新计算摘要并与 CheckValue 比对”的完整性 校验。注意:本模块实现对签名值(SignedValue.dat,SM2 签名)的密码学 验签,那需要证书解析与椭圆曲线运算,超出基础库范围。

Functions§

base64_encode
将字节序列编码为标准 Base64 文本(含 = 填充)。
sm3
计算输入数据的 SM3 摘要,返回 32 字节结果。