summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payload_consumer/delta_performer.cc19
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.