diff options
-rw-r--r-- | payload_consumer/delta_performer.cc | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/payload_consumer/delta_performer.cc b/payload_consumer/delta_performer.cc index ba96047a..d9efc30e 100644 --- a/payload_consumer/delta_performer.cc +++ b/payload_consumer/delta_performer.cc @@ -1818,6 +1818,16 @@ ErrorCode DeltaPerformer::VerifyPayload( return ErrorCode::kPayloadSizeMismatchError; } + auto [payload_verifier, perform_verification] = CreatePayloadVerifier(); + if (!perform_verification) { + LOG(WARNING) << "Not verifying signed delta payload -- missing public key."; + return ErrorCode::kSuccess; + } + if (!payload_verifier) { + LOG(ERROR) << "Failed to create the payload verifier."; + return ErrorCode::kDownloadPayloadPubKeyVerificationError; + } + // Verifies the payload hash. TEST_AND_RETURN_VAL(ErrorCode::kDownloadPayloadVerificationError, !payload_hash_calculator_.raw_hash().empty()); @@ -1831,15 +1841,6 @@ ErrorCode DeltaPerformer::VerifyPayload( TEST_AND_RETURN_VAL(ErrorCode::kDownloadPayloadPubKeyVerificationError, hash_data.size() == kSHA256Size); - auto [payload_verifier, perform_verification] = CreatePayloadVerifier(); - if (!perform_verification) { - LOG(WARNING) << "Not verifying signed delta payload -- missing public key."; - return ErrorCode::kSuccess; - } - if (!payload_verifier) { - LOG(ERROR) << "Failed to create the payload verifier."; - return ErrorCode::kDownloadPayloadPubKeyVerificationError; - } if (!payload_verifier->VerifySignature(signatures_message_data_, hash_data)) { // The autoupdate_CatchBadSignatures test checks for this string // in log-files. Keep in sync. |