|
6 | 6 | package openpgp // import "github.com/ProtonMail/go-crypto/openpgp"
|
7 | 7 |
|
8 | 8 | import (
|
9 |
| - "bytes" |
10 | 9 | "crypto"
|
11 | 10 | _ "crypto/sha256"
|
12 | 11 | _ "crypto/sha512"
|
@@ -455,45 +454,32 @@ func (scr *signatureCheckReader) Read(buf []byte) (int, error) {
|
455 | 454 | // if any, and a possible signature verification error.
|
456 | 455 | // If the signer isn't known, ErrUnknownIssuer is returned.
|
457 | 456 | func VerifyDetachedSignature(keyring KeyRing, signed, signature io.Reader, config *packet.Config) (sig *packet.Signature, signer *Entity, err error) {
|
458 |
| - return verifyDetachedSignature(keyring, signed, signature, nil, nil, false, config) |
| 457 | + return verifyDetachedSignature(keyring, signed, signature, nil, false, config) |
459 | 458 | }
|
460 | 459 |
|
461 | 460 | // VerifyDetachedSignatureAndHash performs the same actions as
|
462 | 461 | // VerifyDetachedSignature and checks that the expected hash functions were used.
|
463 | 462 | func VerifyDetachedSignatureAndHash(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, config *packet.Config) (sig *packet.Signature, signer *Entity, err error) {
|
464 |
| - return verifyDetachedSignature(keyring, signed, signature, expectedHashes, nil, true, config) |
465 |
| -} |
466 |
| - |
467 |
| -// VerifyDetachedSignatureAndSaltedHash performs the same actions as |
468 |
| -// VerifyDetachedSignature and checks that the expected hash functions and salts were used. |
469 |
| -func VerifyDetachedSignatureAndSaltedHash(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, expectedSaltedHashes []*packet.SaltedHashSpecifier, config *packet.Config) (sig *packet.Signature, signer *Entity, err error) { |
470 |
| - return verifyDetachedSignature(keyring, signed, signature, expectedHashes, expectedSaltedHashes, true, config) |
| 463 | + return verifyDetachedSignature(keyring, signed, signature, expectedHashes, true, config) |
471 | 464 | }
|
472 | 465 |
|
473 | 466 | // CheckDetachedSignature takes a signed file and a detached signature and
|
474 | 467 | // returns the entity the signature was signed by, if any, and a possible
|
475 | 468 | // signature verification error. If the signer isn't known,
|
476 | 469 | // ErrUnknownIssuer is returned.
|
477 | 470 | func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader, config *packet.Config) (signer *Entity, err error) {
|
478 |
| - _, signer, err = verifyDetachedSignature(keyring, signed, signature, nil, nil, false, config) |
479 |
| - return |
480 |
| -} |
481 |
| - |
482 |
| -// CheckDetachedSignatureAndSaltedHash performs the same actions as |
483 |
| -// CheckDetachedSignature and checks that the expected hash functions or salted hash functions were used. |
484 |
| -func CheckDetachedSignatureAndSaltedHash(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, expectedSaltedHashes []*packet.SaltedHashSpecifier, config *packet.Config) (signer *Entity, err error) { |
485 |
| - _, signer, err = verifyDetachedSignature(keyring, signed, signature, expectedHashes, expectedSaltedHashes, true, config) |
| 471 | + _, signer, err = verifyDetachedSignature(keyring, signed, signature, nil, false, config) |
486 | 472 | return
|
487 | 473 | }
|
488 | 474 |
|
489 | 475 | // CheckDetachedSignatureAndHash performs the same actions as
|
490 | 476 | // CheckDetachedSignature and checks that the expected hash functions were used.
|
491 | 477 | func CheckDetachedSignatureAndHash(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, config *packet.Config) (signer *Entity, err error) {
|
492 |
| - _, signer, err = verifyDetachedSignature(keyring, signed, signature, expectedHashes, nil, true, config) |
| 478 | + _, signer, err = verifyDetachedSignature(keyring, signed, signature, expectedHashes, true, config) |
493 | 479 | return
|
494 | 480 | }
|
495 | 481 |
|
496 |
| -func verifyDetachedSignature(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, expectedSaltedHashes []*packet.SaltedHashSpecifier, checkHashes bool, config *packet.Config) (sig *packet.Signature, signer *Entity, err error) { |
| 482 | +func verifyDetachedSignature(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, checkHashes bool, config *packet.Config) (sig *packet.Signature, signer *Entity, err error) { |
497 | 483 | var issuerKeyId uint64
|
498 | 484 | var hashFunc crypto.Hash
|
499 | 485 | var sigType packet.SignatureType
|
@@ -523,22 +509,11 @@ func verifyDetachedSignature(keyring KeyRing, signed, signature io.Reader, expec
|
523 | 509 | sigType = sig.SigType
|
524 | 510 | if checkHashes {
|
525 | 511 | matchFound := false
|
526 |
| - if sig.Version == 6 { |
527 |
| - // check for salted hashes |
528 |
| - for _, expectedSaltedHash := range expectedSaltedHashes { |
529 |
| - if hashFunc == expectedSaltedHash.Hash && bytes.Equal(sig.Salt(), expectedSaltedHash.Salt) { |
530 |
| - matchFound = true |
531 |
| - break |
532 |
| - } |
533 |
| - } |
534 |
| - |
535 |
| - } else { |
536 |
| - // check for hashes |
537 |
| - for _, expectedHash := range expectedHashes { |
538 |
| - if hashFunc == expectedHash { |
539 |
| - matchFound = true |
540 |
| - break |
541 |
| - } |
| 512 | + // check for hashes |
| 513 | + for _, expectedHash := range expectedHashes { |
| 514 | + if hashFunc == expectedHash { |
| 515 | + matchFound = true |
| 516 | + break |
542 | 517 | }
|
543 | 518 | }
|
544 | 519 | if !matchFound {
|
|
0 commit comments