mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-29 13:56:32 +08:00
1 parent
5e0da3da28
commit
ee6c9f6a16
82 files changed
+4316
-4310
No files matched your search
+21
-21
@@ -46,10 +46,31 @@ type SignaturePolicy struct {
|
||||
// signaturePolicyRejection 区分策略拒绝与解析失败
|
||||
type signaturePolicyRejection struct{ message string }
|
||||
|
||||
// signatureCoverageNode 收集OFD结构中的包内路径引用
|
||||
type signatureCoverageNode struct {
|
||||
XMLName xml.Name
|
||||
Attrs []xml.Attr `xml:",any,attr"`
|
||||
Text string `xml:",chardata"`
|
||||
Children []signatureCoverageNode `xml:",any"`
|
||||
}
|
||||
|
||||
// Error 返回策略拒绝原因
|
||||
// 返回: string 错误信息
|
||||
func (e signaturePolicyRejection) Error() string { return e.message }
|
||||
|
||||
// WithSignaturePolicy 设置签名策略
|
||||
// 入参: policy 签名策略
|
||||
// 返回: SignatureVerifyOption 验签选项
|
||||
func WithSignaturePolicy(policy SignaturePolicy) SignatureVerifyOption {
|
||||
policy.OFDVersions = append([]string(nil), policy.OFDVersions...)
|
||||
policy.SESVersions = append([]int(nil), policy.SESVersions...)
|
||||
policy.SignedDataVersions = append([]int(nil), policy.SignedDataVersions...)
|
||||
policy.DigestMethods = append([]string(nil), policy.DigestMethods...)
|
||||
policy.SignatureMethods = append([]string(nil), policy.SignatureMethods...)
|
||||
policy.RequiredFiles = append([]string(nil), policy.RequiredFiles...)
|
||||
return func(o *signatureVerifyOptions) { o.Policy = &policy }
|
||||
}
|
||||
|
||||
// rejectSignaturePolicy 构造可识别的策略拒绝错误
|
||||
// 入参: format 消息模板, values 模板参数
|
||||
// 返回: error 策略错误
|
||||
@@ -66,19 +87,6 @@ func (report *SignatureVerifyReport) applySignaturePolicyError(err error) {
|
||||
}
|
||||
}
|
||||
|
||||
// WithSignaturePolicy 设置签名策略
|
||||
// 入参: policy 签名策略
|
||||
// 返回: SignatureVerifyOption 验签选项
|
||||
func WithSignaturePolicy(policy SignaturePolicy) SignatureVerifyOption {
|
||||
policy.OFDVersions = append([]string(nil), policy.OFDVersions...)
|
||||
policy.SESVersions = append([]int(nil), policy.SESVersions...)
|
||||
policy.SignedDataVersions = append([]int(nil), policy.SignedDataVersions...)
|
||||
policy.DigestMethods = append([]string(nil), policy.DigestMethods...)
|
||||
policy.SignatureMethods = append([]string(nil), policy.SignatureMethods...)
|
||||
policy.RequiredFiles = append([]string(nil), policy.RequiredFiles...)
|
||||
return func(o *signatureVerifyOptions) { o.Policy = &policy }
|
||||
}
|
||||
|
||||
// applySignaturePolicy 应用版本和算法限制
|
||||
// 入参: o 验签选项, ofdVersion OFD版本, sesVersion SES版本, method 签名算法, digest 摘要算法
|
||||
func (report *SignatureVerifyReport) applySignaturePolicy(o *signatureVerifyOptions, ofdVersion string, sesVersion int, method, digest string) {
|
||||
@@ -284,14 +292,6 @@ func (r *Reader) signatureCoveragePath(name string) string {
|
||||
return name
|
||||
}
|
||||
|
||||
// signatureCoverageNode 收集OFD结构中的包内路径引用
|
||||
type signatureCoverageNode struct {
|
||||
XMLName xml.Name
|
||||
Attrs []xml.Attr `xml:",any,attr"`
|
||||
Text string `xml:",chardata"`
|
||||
Children []signatureCoverageNode `xml:",any"`
|
||||
}
|
||||
|
||||
// signatureCoverageReferences 收集标准OFD引用的传递闭包且包含跨文档资源
|
||||
// 入参: root 文档入口, required 待补充的必需文件集合
|
||||
// 返回: error 引用文件无法读取或解析时的错误
|
||||
|
||||
Reference in new issue
Block a user