@@ -33,7 +33,7 @@ func (this *PKCS7) VerifyWithChain(truststore *x509.CertPool) (err error) {
33
33
}
34
34
35
35
for _ , signer := range this .Signers {
36
- if err := verifySignature (this , signer , truststore ); err != nil {
36
+ if err := this . verifySignature (signer , truststore ); err != nil {
37
37
return err
38
38
}
39
39
}
@@ -53,15 +53,15 @@ func (this *PKCS7) VerifyWithChainAtTime(truststore *x509.CertPool, currentTime
53
53
}
54
54
55
55
for _ , signer := range this .Signers {
56
- if err := verifySignatureAtTime (this , signer , truststore , currentTime ); err != nil {
56
+ if err := this . verifySignatureAtTime (signer , truststore , currentTime ); err != nil {
57
57
return err
58
58
}
59
59
}
60
60
61
61
return nil
62
62
}
63
63
64
- func verifySignatureAtTime (p7 * PKCS7 , signer signerInfo , truststore * x509.CertPool , currentTime time.Time ) (err error ) {
64
+ func (p7 * PKCS7 ) verifySignatureAtTime ( signer signerInfo , truststore * x509.CertPool , currentTime time.Time ) (err error ) {
65
65
signedData := p7 .Content
66
66
ee := getCertFromCertsByIssuerAndSerial (p7 .Certificates , signer .IssuerAndSerialNumber )
67
67
if ee == nil {
@@ -116,7 +116,7 @@ func verifySignatureAtTime(p7 *PKCS7, signer signerInfo, truststore *x509.CertPo
116
116
}
117
117
}
118
118
119
- // sign
119
+ // get sign func
120
120
signFunc , err := getSignatureFunc (signer .DigestEncryptionAlgorithm .Algorithm , signer .DigestAlgorithm .Algorithm )
121
121
if err != nil {
122
122
return err
@@ -126,13 +126,17 @@ func verifySignatureAtTime(p7 *PKCS7, signer signerInfo, truststore *x509.CertPo
126
126
127
127
checkStatus , err := signFunc .Verify (pkey , signedData , signer .EncryptedDigest )
128
128
if ! checkStatus {
129
+ if err == nil {
130
+ return errors .New ("go-cryptobin/pkcs7: Verify fail" )
131
+ }
132
+
129
133
return err
130
134
}
131
135
132
136
return nil
133
137
}
134
138
135
- func verifySignature (p7 * PKCS7 , signer signerInfo , truststore * x509.CertPool ) (err error ) {
139
+ func (p7 * PKCS7 ) verifySignature ( signer signerInfo , truststore * x509.CertPool ) (err error ) {
136
140
signedData := p7 .Content
137
141
ee := getCertFromCertsByIssuerAndSerial (p7 .Certificates , signer .IssuerAndSerialNumber )
138
142
if ee == nil {
@@ -186,7 +190,7 @@ func verifySignature(p7 *PKCS7, signer signerInfo, truststore *x509.CertPool) (e
186
190
}
187
191
}
188
192
189
- // sign
193
+ // get sign func
190
194
signFunc , err := getSignatureFunc (signer .DigestEncryptionAlgorithm .Algorithm , signer .DigestAlgorithm .Algorithm )
191
195
if err != nil {
192
196
return err
@@ -196,6 +200,10 @@ func verifySignature(p7 *PKCS7, signer signerInfo, truststore *x509.CertPool) (e
196
200
197
201
checkStatus , err := signFunc .Verify (pkey , signedData , signer .EncryptedDigest )
198
202
if ! checkStatus {
203
+ if err == nil {
204
+ return errors .New ("go-cryptobin/pkcs7: Verify fail" )
205
+ }
206
+
199
207
return err
200
208
}
201
209
0 commit comments