From patchwork Mon Jun 3 08:56:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dominique Martinet X-Patchwork-Id: 1942762 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20230601 header.b=ZV2kXiO+; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2607:f8b0:4864:20::139; helo=mail-il1-x139.google.com; envelope-from=swupdate+bncbcwivbv7sugrbmek62zamgqemze4dqy@googlegroups.com; receiver=patchwork.ozlabs.org) Received: from mail-il1-x139.google.com (mail-il1-x139.google.com [IPv6:2607:f8b0:4864:20::139]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vt6yr0fblz20Pb for ; Mon, 3 Jun 2024 18:56:19 +1000 (AEST) Received: by mail-il1-x139.google.com with SMTP id e9e14a558f8ab-374968174f8sf15366495ab.3 for ; Mon, 03 Jun 2024 01:56:19 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717404977; cv=pass; d=google.com; s=arc-20160816; b=HzPVNgSJpoNppW5QzZHA9aVxnV91+DpkODsVJARd5jAA3969IDSa9h6s1Rb8xb+Alc jwAyXietaM/4DcMlzg/SHAkrgoimc5x2pkVHyVRDj9RqJI2nXVDAXJV6oqQugK5uO0Z0 a0zz07CZw81/0AAQlHvnt7Z3wWYNzOuYKgLZoycB9tp1aZWVm7P1kP234yWaFqkRh/eD JPbePboA60WGvYd67sGJv09ChvSva6T9c/IeANaLzHezjKNOPpFyQz8IKZBEkT9WMF9T 3K9ENkeNnGfLJCBuaERQhiY34MHqAVKZ0cehUjSKIJIOs7NmxICWfUdRcTkCAHCbdum7 +cUg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=B2VFEUrIRvFbSfjjMp20CNvAf5VYe7NyFH3cCU1rj9g=; fh=FDGsLqo+YLa+wLDFvLS0zR9U+5sieZOo4LdmhcRfyn4=; b=QXYVtDxOwCTWIsjnQevT7CGem5zdznlwvSMcuEBS9V/dnGROUuPMhmpfC2YRd2BOlj DoeOuE1n+uf6CeuW58jiPSwey+1QYe2jzl4Dn1t94ZQpAt1kZKrX2zL+5JEYTLIk7b3v o3L7ekvmTi8/kruN8PR2xBy+DmD81QboMvyIZzcV/91NnB94s0pimC5cLJXjOT1UuBuU 7e5+JnJNhaGBlkN1F5Arp2ycGIaJIUFCg+GgMZjoKQQ17vHlx82nUgdu2DVxml3qss6s k5Blw5tann/wQqY0gRwECoXqdY+TjbQ5Dx9NvdVP41fyXzFXt9Qxc19OtxfgfP6w399H T8BA==; darn=patchwork.ozlabs.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@atmark-techno.com header.s=gw2_bookworm header.b=BECJCvTD; dkim=pass header.i=@atmark-techno.com header.s=google header.b=DnvfsFZO; spf=pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) smtp.mailfrom=dominique.martinet@atmark-techno.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=atmark-techno.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1717404977; x=1718009777; darn=patchwork.ozlabs.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=B2VFEUrIRvFbSfjjMp20CNvAf5VYe7NyFH3cCU1rj9g=; b=ZV2kXiO+Kyp2CC+RY1gD+PRABXabmFn1R4u4VPBtRgloOzyLwhSRYiUE5cSB0JJWg/ hjb0Me7Yu9JvTrAw+KJTgJ+ESjUrjA9LQiYFuuxPE9F5VDgTddOBKtlYNKeXoulNt8we x4Ph5C8PWE5RvsBFvJyGxcf9aARmPHBZtkOm/cQkoHG6G5JdLjFUF4UsFGEFqW/H10e3 TesB861P/v4/D+cD1f5WkWw5liD4a7yI1h7VITLQtX7nvlSfsw6m2UlBeVITD2VXZp0b gQzzHYar20yD3k3J0tNDwxaaQiACKfzqTvoBLoNUrrxqU+fXWcUv49juodLjHq4GhcER ARWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717404977; x=1718009777; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to; bh=B2VFEUrIRvFbSfjjMp20CNvAf5VYe7NyFH3cCU1rj9g=; b=CRnkVXkG9+Jb7XZLmTZE7eAJGDLgEFHhbmQHGkGrkdIKiXyqwqDrT/DVdxoPLuvyE1 O4Shtjmn63j1qWFoFMwY9MtU39zIQJFqWlzBl7s2pmmreZduoqo8CNvJ6yKU/3JoGAZk EqcXRBH4sS1xz6zLx8ciqh4z79PEURzwjtgYCga5qa1lCd9or3ZRsXJnQnOpEm67PdgA 7wz4RLdNpyHrgH2GqEXqiwJ8giuNSwNSYBwejvFLd1aso/y/X3pih2y5uMAyn9RQ6JNh oJqHeeF6IbWMJWKf5CjH3E6/2N4N1RelgNVFjucGJuZNDIbChuy9PlmFY0Yfj+ZNSmeO SUYQ== Sender: swupdate@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCW1tVGNmHAmynLAa4HJXfZst2j0PArdQIkboZiKMsztBremyTw84UaIiDdctwLthrwAdWoytqPmuuwSiZtFQ5mEPPPsPpq/vq1v5TFXdw== X-Gm-Message-State: AOJu0Yyq27p+sxjQAvlECIyXQyZ6wWOKb3DVKzjIkmOjnMjDncTGQ48y dBfUIriNTjVsTZo1HC6L5x/BUtS+qwfbzn9XUxvvMtjXsqkaaL/+ X-Google-Smtp-Source: AGHT+IFmpht/74cLV7yQVsxVVo8SOJLWlThh6yVJBwkP0zxEyJMf3RMiEO8I1NG0meX9psGXUob5Kw== X-Received: by 2002:a05:6e02:b28:b0:374:8a84:6bf7 with SMTP id e9e14a558f8ab-3748b97cdb5mr97571665ab.8.1717404977527; Mon, 03 Jun 2024 01:56:17 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a92:d2cd:0:b0:374:973b:3cf5 with SMTP id e9e14a558f8ab-374973b3eeels7026275ab.2.-pod-prod-09-us; Mon, 03 Jun 2024 01:56:16 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUEfRR94+ci4FEhy5urjFGCtBT3HlYUNIR6LI0hrO2uRqf8r+GIK7buvR1ObHNdMoP5f0tFI0dpRqgsCuHR8t/cYQB/AtA1RKxF X-Received: by 2002:a05:6602:1541:b0:7e2:1ac2:1ce5 with SMTP id ca18e2360f4ac-7eafff2d0d4mr1004014439f.13.1717404976036; Mon, 03 Jun 2024 01:56:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1717404976; cv=none; d=google.com; s=arc-20160816; b=B0MVKlbiPJLreDuWKcYIFg2J9OI4mUJbRIn7qz3sKv34ad6SwMXS9/s5SmZvCJln3W 3AKHPd6M5CGMNxxu0ygiGTL1eL7/55HxTfr179askr5EaOGE0YlcZkGaJFaUvG1mYlyZ IE3VamzFXFBaJq5sJZCp95cAqaK6WUINnLOOK6n5lmX7MU+nNWWtaarsIpnjWQ/fC0wj 9A61bjYWrC/UcnAaW3LO2RKQizxnQkZFApdNezpv+6DKt9mK/sW/t6zWpwrNiFu/aHne xlhh6okIBDUkgeKADcIs0H/oRWDC5gAKPLWH0KDYuvhBZkhpkB7HYhzIiIaBycW9Qemt 8Lug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:dkim-signature; bh=/WHa29V5F5Rdb13+6Xr54UrA36iwqI7731oClvJTO4I=; fh=JsdvNXLL0QGgPzYa0Dp0lJjBxgha56OW76IQKDaW0MA=; b=NHFWEVTudI7uw5CTy9ld8z0yErFPpbn4SmM2htWqWuVrCvN605Mg6pC/gPf177GNkP GVUBnJDx8d5KGcuWd5HLZvZjkms0gNR7VnVqOCCEHhLC4ff79fJiDuZX++71W/vX253C idwg1W6IqOkvwAxyi4RyBltX18Kz1wmr+hB/yjvt133RUO6TSY6Oz9bIn9TYr3Of1B6c 5JiA6wtnfgHbqaiTPO5HVtKOGb9fLGeujEw5tqTHfqrjCnirIvCM4fVS0ISnQ2uMwVu4 gg29wtRkN1Stcecz6F80X0ehPVuinoI0B9oJW1yNXi+YzYxsVTDaXQVTvN+BpdtjpLV7 aVqA==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@atmark-techno.com header.s=gw2_bookworm header.b=BECJCvTD; dkim=pass header.i=@atmark-techno.com header.s=google header.b=DnvfsFZO; spf=pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) smtp.mailfrom=dominique.martinet@atmark-techno.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=atmark-techno.com Received: from gw2.atmark-techno.com (gw2.atmark-techno.com. [35.74.137.57]) by gmr-mx.google.com with ESMTPS id 8926c6da1cb9f-4b523869a03si202840173.7.2024.06.03.01.56.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jun 2024 01:56:16 -0700 (PDT) Received-SPF: pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) client-ip=35.74.137.57; Received: from gw2.atmark-techno.com (localhost [127.0.0.1]) by gw2.atmark-techno.com (Postfix) with ESMTP id 911EAA9A for ; Mon, 3 Jun 2024 17:56:13 +0900 (JST) Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by gw2.atmark-techno.com (Postfix) with ESMTPS id 8DBDAA99 for ; Mon, 3 Jun 2024 17:56:11 +0900 (JST) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-6c9001a14ffso1596361a12.2 for ; Mon, 03 Jun 2024 01:56:11 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCV/y478xy9Ar6DGtYZD4odnyvRUXQR9s41ozU36JWv2DeHu00XvPI+3ksjvKUHcR5PLPLG/qx4D7LqJ3ddienM1S6xMbsLYzZ1C X-Received: by 2002:a17:902:f551:b0:1f6:7644:8317 with SMTP id d9443c01a7336-1f67644b2c0mr24698895ad.31.1717404970540; Mon, 03 Jun 2024 01:56:10 -0700 (PDT) X-Received: by 2002:a17:902:f551:b0:1f6:7644:8317 with SMTP id d9443c01a7336-1f67644b2c0mr24698825ad.31.1717404970185; Mon, 03 Jun 2024 01:56:10 -0700 (PDT) Received: from pc-0182.atmarktech (35.112.198.104.bc.googleusercontent.com. [104.198.112.35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f632338adasm60092275ad.16.2024.06.03.01.56.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 03 Jun 2024 01:56:08 -0700 (PDT) Received: from [::1] (helo=pc-0182.atmark.tech) by pc-0182.atmarktech with esmtp (Exim 4.96) (envelope-from ) id 1sE3U6-009riT-1n; Mon, 03 Jun 2024 17:56:06 +0900 From: Dominique Martinet To: stefano.babic@swupdate.org, swupdate@googlegroups.com Cc: Dominique Martinet Subject: [swupdate] [PATCH RFC 9/9] cpio_utils: skip full sha256 if chunked hash is set Date: Mon, 3 Jun 2024 17:56:02 +0900 Message-Id: <20240603085602.2351411-10-dominique.martinet@atmark-techno.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240603085602.2351411-1-dominique.martinet@atmark-techno.com> References: <20240603085602.2351411-1-dominique.martinet@atmark-techno.com> MIME-Version: 1.0 X-Original-Sender: dominique.martinet@atmark-techno.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@atmark-techno.com header.s=gw2_bookworm header.b=BECJCvTD; dkim=pass header.i=@atmark-techno.com header.s=google header.b=DnvfsFZO; spf=pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) smtp.mailfrom=dominique.martinet@atmark-techno.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=atmark-techno.com Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , This avoids double-compuation of the checksum Signed-off-by: Dominique Martinet --- core/cpio_utils.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/core/cpio_utils.c b/core/cpio_utils.c index fd52c9ef0ba6..18cd474eaa8c 100644 --- a/core/cpio_utils.c +++ b/core/cpio_utils.c @@ -615,12 +615,6 @@ int copyfile(struct swupdate_copy *args) if (args->checksum) *args->checksum = 0; - if (IsValidHash(args->hash)) { - input_state.dgst = swupdate_HASH_init(SHA_DEFAULT); - if (!input_state.dgst) - return -EFAULT; - } - if (args->encrypted) { aes_key = get_aes_key(); if (args->imgivt && strlen(args->imgivt)) { @@ -736,6 +730,9 @@ int copyfile(struct swupdate_copy *args) close(tmpfd); chunked_hash_state.chunked_hashes = args->chunked_hashes; + /* avoid computing sha256 twice */ + args->hash = NULL; + chunked_hash_state.upstream_step = step; chunked_hash_state.upstream_state = state; step = &chunked_hash_step; @@ -759,6 +756,12 @@ int copyfile(struct swupdate_copy *args) } #endif + if (IsValidHash(args->hash)) { + input_state.dgst = swupdate_HASH_init(SHA_DEFAULT); + if (!input_state.dgst) + return -EFAULT; + } + for (;;) { ret = step(state, buffer, sizeof buffer); if (ret < 0) {