From patchwork Thu Jan 16 16:12:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: 'Darko Komljenovic' via swupdate X-Patchwork-Id: 1224321 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::23c; helo=mail-lj1-x23c.google.com; envelope-from=swupdate+bncbc6ynavgsakrbcmxqlyqkgqeprx5zwa@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=googlegroups.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=RAuWLoaS; dkim-atps=neutral Received: from mail-lj1-x23c.google.com (mail-lj1-x23c.google.com [IPv6:2a00:1450:4864:20::23c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47z8P911J0z9sP3 for ; Fri, 17 Jan 2020 03:13:00 +1100 (AEDT) Received: by mail-lj1-x23c.google.com with SMTP id w6sf5339018ljo.20 for ; Thu, 16 Jan 2020 08:13:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1579191178; cv=pass; d=google.com; s=arc-20160816; b=IqvIlnbgvOVLYb8paopNuqfQtcGIwM7Bc9o8Hlu33QH/JkCAzHXuXb3fXZSQkId7sr T20RSCYPzbi665V029bDAY5ZAM6V/aKkLnwmaAZ0NUoz4D5INiGijfQ6tKCLoA/zaZwe SGd4r0XX8DBj7jMVkZ6gfPMJlt8DWEn5OJhJWgJDRSJANqv+E1zP+2/2c+keVHfZh4CW AvPho7NAJXFyv7EwjtlR2FhrYOwQdfea9GNFkm6sHrXkFdrfYLTp/zHcqnDYCZNKKTpy HFkIZp/wYfLduZ8wKk2gbzFFOHaDqlzKzi76KnvJ6K9hRTbOHJlFLRfuyE8MSGGMp/MZ VBUA== 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:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=p5JF0zPkJBKdH7IdUYhjJbGEnc/TXJPGW1f0LCcQmHY=; b=fczvnshS3rHlndvst0CG/uYLkauF/On0MwNW//a81B/3Kug2eWQGt02I5fETO2bNSQ sp9X0kHphjQwW6ncvrh2lr48PDVoHEsHwfqLZRdG1AgCZukR06zU5hgiWkjkOwA0H7hO eq+7sYbwA3iSC1slVSIsQ4YWAo4sNC8MDSxKFiC4MiykmlnTzNjKNjqJj+ARkuYXvP0c U8CW6OzPYdAn1JkOyhUx1of3k4sWLkrhBHz7G2kONt2XW5l1OZzCji++VwDjfMtlgKfo 8uVsTUdMF8eWATczH/zfuX05YhIwuh7axRa8GeNmdJvLXhwNUxusheB8PG3h8HzLRwH+ TW/g== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=KI5+KB+4; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :reply-to:precedence:mailing-list:list-id:list-post:list-help :list-archive:list-subscribe:list-unsubscribe; bh=p5JF0zPkJBKdH7IdUYhjJbGEnc/TXJPGW1f0LCcQmHY=; b=RAuWLoaSu6Z63N83Q4I0kK5l+pQGPndnsknGX7ZwNVOXPIh/E6ZaEBq4JIu6054L85 ym8HFwZEvcShMywvPBPJGvZKe1V2vNfW8ixxFf96OKQ/Jj1/mWsRexzl9jQ3BaoLw25Y IpGYUiP2U3W2cR0GPSf0XnodO5YSuzFfz2erDmTErHqGwGJ5bzAElN4uJA+43vS54Jrk rhs/sUVAwwNzEvU10ORUY2L7DNxXhfGsAjHgzxByONBBDIY1KNgrlgf5SN4Ul5Ugb+PC dzch9mawNLuwmkIhJOhM+S+ALDvAJR81R5hSQxeBTHsrP6oy1rnLnAx3sQtsR02Sqt9X Yj+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=p5JF0zPkJBKdH7IdUYhjJbGEnc/TXJPGW1f0LCcQmHY=; b=R7H36CyJClrPcNVcxUrG7pC/8pUq1yHYE7URSTAV9UaBU0t8vJclALKA5eBlwt8MPt 8osZEjQU15TwgLW0TNgsM5QETM0vowvWA6R8Q1kOQReq6eQNhDSZNi4o7Pt4TnU1wphq lGPGo+EWnOnMVEEvFvVq7WIGwSfMLAldZ1JpDpJ8KnNp95hH2TKxsyB306XCI5RPRWjX K/3bk3S3ZCDU6V5qT6N4wfoneBqSgt7Zr7CDIYUisOALld1ieeI7d6MSygsyZ/2AcKQ8 cwDi37ubQlVa9UBxqlgjj8+yx4KsE9KbXt9BOS3dB5Cc2fVmR68IQwjR0QaOOVp/EQZw tVSg== X-Gm-Message-State: APjAAAXbih/FcWkds/IQrdJODzOaspLyM0ZqVyTkaLEsgTWKMC6E6anN fQoJXfFc+Ue5tWnj4FD/Bes= X-Google-Smtp-Source: APXvYqwLqcIY53pgoaHGCNauqILq3BnmO+PESYfeW8zBTqlKeFI8w9uag4cuYdgeQjBp9MMYzodbJg== X-Received: by 2002:a2e:9cc:: with SMTP id 195mr2781310ljj.130.1579191177896; Thu, 16 Jan 2020 08:12:57 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a2e:988d:: with SMTP id b13ls3185787ljj.6.gmail; Thu, 16 Jan 2020 08:12:57 -0800 (PST) X-Received: by 2002:a2e:b017:: with SMTP id y23mr2848047ljk.229.1579191177017; Thu, 16 Jan 2020 08:12:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579191177; cv=none; d=google.com; s=arc-20160816; b=KO0d/2PNgP+LM/XCv3kys7UgT/M3gNPF6oAel32IW293AHjh6ULpDA+0S3/CWgUe/l fc5i5RxDT5METVnhtBRD2vxJHC2yYZUN9r7b92vJ1DoHl4UZOSATsEpTT5sz40wG4meN Rz4mo4Kh6Ve7+nFFKysKqcKHhDRDPJFSJgxrnKYHa5n3tiIDtAxi4szoSlk48tqLbbK+ jWBX7WDzD8MsUEbt9ryjM9jYj/udCn7QknDU2+RitFKtJqpkKNbGmdEGdCh/V3AUBaOg WPbCNy5j20zvCCQc0J6EV0JexDLpxsYmXfTbaKPPejRETR+CEd/cjYlHVhq1XFpfJxX2 Pcwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=rGlAbyxUqRMxCHU/rlTqiIAgOoxj4R1lOhjD7SAw4NU=; b=IJg2VrBHimRSsn9bSpin7Xyvd85cD78br5sByOZmzFqv9fmakxT6TZvOxsyI5dt0Pi 5aQdYbc9s2HQD2VC1YgGeV7/vGmVxDC2c20ElF3Xj+exnQr6pX2YG/zCKA7ouddR4M7K xPyTIKKbg4OElJi8CtzKApVvxsXi3V4QImrjMTFNT/d/3lnzdDM9eOc5EQWeAvejzxES tPh3SNw7slN7C1fB0EKyDUrlL9SRQBd7IQoMwE/qgUSQvhf8HLEUgzC7oVVFPWNzUJHF P9txLUAiQ4s/PebmuGmD+Mrtah5Oas1LjOFKaZrohYgmO4/9i9kUC4cvKvdZgL+SjVil xVLQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=KI5+KB+4; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com Received: from de-out1.bosch-org.com (de-out1.bosch-org.com. [139.15.230.186]) by gmr-mx.google.com with ESMTPS id u5si898761lfm.0.2020.01.16.08.12.56 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Jan 2020 08:12:56 -0800 (PST) Received-SPF: pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) client-ip=139.15.230.186; Received: from fe0vm1649.rbesz01.com (unknown [139.15.230.188]) by si0vms0217.rbdmz01.com (Postfix) with ESMTPS id 47z8P42tjpz4f3m1Q; Thu, 16 Jan 2020 17:12:56 +0100 (CET) Received: from fe0vm1741.rbesz01.com (unknown [10.58.172.176]) by fe0vm1649.rbesz01.com (Postfix) with ESMTPS id 47z8P42Wbgz1Mg; Thu, 16 Jan 2020 17:12:56 +0100 (CET) X-AuditID: 0a3aad15-12fff70000004734-d5-5e208b88d9ce Received: from si0vm1950.rbesz01.com ( [10.58.173.29]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by fe0vm1741.rbesz01.com (SMG Outbound) with SMTP id FB.78.18228.88B802E5; Thu, 16 Jan 2020 17:12:56 +0100 (CET) Received: from SI-HUB2000.de.bosch.com (si-hub2000.de.bosch.com [10.4.103.108]) by si0vm1950.rbesz01.com (Postfix) with ESMTPS id 47z8P40N7zzW79; Thu, 16 Jan 2020 17:12:56 +0100 (CET) Received: from ninja.grb-fir.grb.de.bosch.com (10.19.187.97) by SI-HUB2000.de.bosch.com (10.4.103.108) with Microsoft SMTP Server id 15.1.1847.3; Thu, 16 Jan 2020 17:12:55 +0100 X-Patchwork-Original-From: "'Mark Jonas' via swupdate" From: 'Darko Komljenovic' via swupdate To: , CC: , , Mark Jonas Subject: [swupdate] [PATCH 1/3] handlers: add readback handler Date: Thu, 16 Jan 2020 17:12:03 +0100 Message-ID: <20200116161205.12973-2-mark.jonas@de.bosch.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200116161205.12973-1-mark.jonas@de.bosch.com> References: <20200116161205.12973-1-mark.jonas@de.bosch.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA22Sa0wTWRzFudMy3BbGTge6/K2iZIxuopFtFd/4SDRqfMTGRDFmLRYZ6MTy SKf4+mJVKi8jKJIKKaioMT6Rxy5U8NVlpSWrG7NZ2DUbsz5igGhFKpEaFacUbD/47d5z7u9/ 7j25WMLYotSYz7Fw5hyDiSXlUvni6wmzi0oT9ZoCB15Y2LVhod05HLmCWFtb7ZaubT/hIXXE dnlKBmfi93Dmn5btlBttw/WSvCuz9r0dtJNWVDCtBMkw0MnwqvMwUYLkmKHtBDw50h0V3LQh eOD4f8z5BcGhzx1EACHpmfCvu1USWMfRWujx+kd1Cb0Lfu1qjgysY+m58OKvKlHHWEpPh6HO NQGZolOg5u5nMpg8Fa7evDc6RkYvBfsZ3+gYRjzzsMqKgueV4Kl6KQ2OB7jf2yspR4rqMKs6 zDqLiCtIlclp9mRrFyRrk8zpnHBAo03alZvdiIKdqVrRQF+mCxEYudA8TLAqKq49Qc9MSM/N 2G80CMY0c76JE1g1dfB18Q4m9pss5Kdn84LA5+a4EGAJG0d5TosclWHYf4Az5wYxF5qEpWw8 lYU3/czQWQYLt5vj8jjzuLsEYxYoWUminlGauSxuXyZvsozbbAKFIiIimB/CnfBYAstcaC6O EbOdxeIISsgzZAt81hg+MYgz42oI7UIL1PEUXyQydMA15ud8S1VPptbXTNEzqjAjRPajHoQR G0uVBu4cI37AUB5Q1kBFyjExBM05LzL0s3h4/ocKRq7+CE5vGQLfrTcIaluHEFzw+cXt40EC Kg/5Cai/0y+Fut+8UnhfUxkJvY02EppthSS4e26RMFI2IoN/zp6KhoZL9dHgaW6IBueNihjo qDtJweluHwW/X/tAged95QRwFtcpwH/7sQKOO4YVMPRfOw3HLj5QQmNDFQO+J4MMlHkqYqGp sSWuX6ySEKssXzklUKXFYPlOlWNq6G1qK3J33pm/6t1HV1/barJs1tO9f6ZUK5N1JyI063Zu mdOdLDF9sc93VCi2ObTO3U2LOuqOZVzzFW0efra1Tddy+XlpqvFlzRvtwPFpVn77UpuX1x1N O+9d3hV5pCVhlbqErxhK+7twwP/hrW5jan6BXrPE3fdINqPnnOxV1CebLunL03JWKhgN2pkS s2D4Cs1Rp6oYBAAA X-Original-Sender: mark.jonas@de.bosch.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=KI5+KB+4; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com X-Original-From: Mark Jonas Reply-To: Mark Jonas 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: , From: Kevin Zhang To verify that an image was written properly, this readback handler calculates the sha256 hash of a partition (or part of it) and compares it against a given hash value. Signed-off-by: Kevin Zhang Signed-off-by: Mark Jonas --- handlers/Config.in | 7 ++ handlers/Makefile | 1 + handlers/readback_handler.c | 161 ++++++++++++++++++++++++++++++++++++ 3 files changed, 169 insertions(+) create mode 100644 handlers/readback_handler.c diff --git a/handlers/Config.in b/handlers/Config.in index 41eac1c..5a03740 100644 --- a/handlers/Config.in +++ b/handlers/Config.in @@ -106,6 +106,13 @@ config RDIFFHANDLER Add support for applying librsync's rdiff patches, see http://librsync.sourcefrog.net/ +config READBACKHANDLER + bool "readback" + select HASH_VERIFY + default n + help + Use sha256 hash to verify a target partition. + config LUASCRIPTHANDLER bool "Lua Script" depends on LUA diff --git a/handlers/Makefile b/handlers/Makefile index 61e4f76..b756f31 100644 --- a/handlers/Makefile +++ b/handlers/Makefile @@ -15,6 +15,7 @@ obj-$(CONFIG_CFIHAMMING1)+= flash_hamming1_handler.o obj-$(CONFIG_LUASCRIPTHANDLER) += lua_scripthandler.o obj-$(CONFIG_RAW) += raw_handler.o obj-$(CONFIG_RDIFFHANDLER) += rdiff_handler.o +obj-$(CONFIG_READBACKHANDLER) += readback_handler.o obj-$(CONFIG_REMOTE_HANDLER) += remote_handler.o obj-$(CONFIG_SHELLSCRIPTHANDLER) += shell_scripthandler.o obj-$(CONFIG_SSBLSWITCH) += ssbl_handler.o diff --git a/handlers/readback_handler.c b/handlers/readback_handler.c new file mode 100644 index 0000000..2e4faa8 --- /dev/null +++ b/handlers/readback_handler.c @@ -0,0 +1,161 @@ +/* + * SPDX-FileCopyrightText: 2020 Bosch Sicherheitssysteme GmbH + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include + +#include "swupdate.h" +#include "handler.h" +#include "sslapi.h" +#include "util.h" + +void readback_handler(void); +static int readback_postinst(struct img_type *img); +static int verify_file_hash(const char* filename, size_t size, long offset, unsigned char *hash); + +static int readback(struct img_type *img, void *data) +{ + if (!data) + return -1; + + script_fn scriptfn = *(script_fn *)data; + switch (scriptfn) { + case POSTINSTALL: + return readback_postinst(img); + case PREINSTALL: + default: + return 0; + } +} + +static int readback_postinst(struct img_type *img) +{ + /* Get file hash */ + char *ascii_hash = dict_get_value(&img->properties, "sha256"); + if (!ascii_hash) { + ERROR("Property sha256 not found"); + return -EINVAL; + } + + /* Get file size */ + char *value = dict_get_value(&img->properties, "size"); + if (!value) { + ERROR("Property size not found"); + return -EINVAL; + } + unsigned long long size = ustrtoull(value, 10); + + /* Get file offset */ + value = dict_get_value(&img->properties, "offset"); + if (!value) { + ERROR("Property offset not found"); + return -EINVAL; + } + unsigned long long offset = ustrtoull(value, 10); + + /* Convert the ascii hash to binary */ + unsigned char hash[SHA256_HASH_LENGTH]; + ascii_to_hash(hash, ascii_hash); + + return verify_file_hash(img->device, size, offset, hash); +} + +#define BUF_SIZE 4096 + +static int verify_file_hash(const char* filename, size_t size, long offset, unsigned char *hash) +{ + int status = 0; + FILE *fp = NULL; + unsigned char *buf = NULL; + struct swupdate_digest *dgst = NULL; + + if (IsValidHash(hash) == 0) { + ERROR("Invalid hash"); + return -EINVAL; + } + + if (!filename) { + ERROR("Invalid file name"); + return -EINVAL; + } + + fp = fopen(filename, "rb"); + if (!fp) { + ERROR("Failed to open %s: %s", filename, strerror(errno)); + status = -ENODEV; + goto cleanup; + } + + if (fseek(fp, offset, SEEK_SET)) { + ERROR("Failed to seek to position %ld: %s", offset, strerror(errno)); + status = -ENODEV; + goto cleanup; + } + + dgst = swupdate_HASH_init(SHA_DEFAULT); + if (!dgst) { + status = -EFAULT; + goto cleanup; + } + + buf = malloc(BUF_SIZE); + if (!buf) { + status = -ENOMEM; + goto cleanup; + } + + size_t totalread = 0; + while (totalread < size) { + memset(buf, 0, BUF_SIZE); + + size_t readsize = ((size - totalread) > BUF_SIZE) ? + BUF_SIZE : (size - totalread); + + if (fread(buf, 1, readsize, fp) != readsize) { + ERROR("Failed to read %s: %s", filename, strerror(errno)); + status = -EIO; + goto cleanup; + } + totalread += readsize; + + if (swupdate_HASH_update(dgst, buf, readsize) < 0) { + status = -EFAULT; + goto cleanup; + } + } + + unsigned int hash_len = 0; + unsigned char hash_value[SHA256_HASH_LENGTH]; + if (swupdate_HASH_final(dgst, hash_value, &hash_len) < 0) { + status = -EFAULT; + goto cleanup; + } + + if (hash_len != SHA256_HASH_LENGTH || swupdate_HASH_compare(hash_value, hash) < 0) { + ERROR("Hash does not match"); + status = -EFAULT; + goto cleanup; + } + + INFO("Verify file hash success: %s", filename); + +cleanup: + if (fp) + fclose(fp); + if (buf) + free(buf); + if (dgst) + swupdate_HASH_cleanup(dgst); + + return status; +} + +__attribute__((constructor)) +void readback_handler(void) +{ + register_handler("readback", readback, SCRIPT_HANDLER | NO_DATA_HANDLER, NULL); +} From patchwork Thu Jan 16 16:12:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: 'Darko Komljenovic' via swupdate X-Patchwork-Id: 1224322 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::53b; helo=mail-ed1-x53b.google.com; envelope-from=swupdate+bncbc6ynavgsakrbgexqlyqkgqefa4zpwq@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=googlegroups.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=qTVVWrFf; dkim-atps=neutral Received: from mail-ed1-x53b.google.com (mail-ed1-x53b.google.com [IPv6:2a00:1450:4864:20::53b]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47z8PS2Tz6z9s4Y for ; Fri, 17 Jan 2020 03:13:16 +1100 (AEDT) Received: by mail-ed1-x53b.google.com with SMTP id d21sf14251992edy.3 for ; Thu, 16 Jan 2020 08:13:16 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1579191193; cv=pass; d=google.com; s=arc-20160816; b=Ehe2f5Ux+AJpg2E1P65AqB8wsNXLwXH0yDtHH93FZiijXJ3hvIW//8ul6f8mGtE+PE faoVlfHJPCjNYpYkRHVuyU7CG644mktf7laLfTbaz1otXfIcRagM+37GyNvsy4HJK6SL 4AZSD4vI59n46hH+gztvbUUONSFnJNcZ5GQX7Gl3T6AyOu6ndH3MLpvjao5m8RbsyH5N toXOvOQhriqxU5DYgsXk8V1TRaPuQkyyBE4sss7no4d38amkQp86YJ8dxgPEJzgenQxd RwLTAN7xw1hOXWWtnsITG95QDnfNKSyGIU9j/M2R2+yrDddI3c4XcAf3h4e6i9Oe6N8I kmkQ== 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:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=+ybocfRu1lB/2/TPAqhSD8ZJICPRoHK/6S7WR1YPmJY=; b=GPGeuKRWot+aHxojNkRAIpSMoZe29eRa7Fx16kwf/z0GUcE5qoHtTszrkmUfUvQ1Gg zqMDaXugig/sCLgFemtpVqdkPrGkLaF1ISGcylngTz3WhQGpK6jYy2T1xK6afnk/VLSc smMt8topa3+OwEXwTUIfjEnuQgX/W3z/KjC1L42OT3k9wrFakNAXdYabo7etceX0vt3h ig25uI27RkXDMRCXHBP2oGVwKolYW9Difh9CPzxrypGgtUcLSVwIbuXX3jymnBF4ZDfR lFN0EVbZguuvudO3a52dp+6VDyW7AMPmgRBuY9R7048pZlgqgcsN4n8eBC2lGL6y4b61 SNBA== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=dprPTe2z; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :reply-to:precedence:mailing-list:list-id:list-post:list-help :list-archive:list-subscribe:list-unsubscribe; bh=+ybocfRu1lB/2/TPAqhSD8ZJICPRoHK/6S7WR1YPmJY=; b=qTVVWrFfKKPbeJNk1sgrb5kUoVBN6cvWujZ8XOWDGVSnh1wWh7VUeNBc92opjWu2qF 6JwvN4PKx2kM7V/VxNret8/WcWHOCIfqGLrW9Sa8v1BO+4Mt+raQdDvCIHPu/JwuhWbM nFLrFEJocWLOnvqWkF5vFmIZNdpms3PQNxk9CNCZt9z9Vhfd4ziBXfkdEb/9vi0WDFk6 g5ufh5Tt0CEbWCA5XUPSB7+xu5vKlMJ3LwH8zr8TrWUEfAYR2KFwCv8sAkWRRzZtrUkl 6TzMsJ5oIGLEIRZ+/dIfy3OdtowfCTT6YVlhggk3BZ6iY2wfa8LCbo3yR4yJ1P4ZtBsh qSTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=+ybocfRu1lB/2/TPAqhSD8ZJICPRoHK/6S7WR1YPmJY=; b=TMXl8gxSioKCn+oiOb5NGeKBRqxEcPp41215K9JRdAvh47KeOwmeZ9nqQ9kK225Y6g 15RQ7CsxyiEbHZgsRpYWHvacaSl2V0llFYT+g08fpa8kxclNoRsH+kxw13gnuSa5YD5A 3I4IKN6eZa245ehsCtn6TZ2o1CQHDtcufU0qTlwc5U5slOmQIyH+hQiwsL7tz0cmVzvi Be8aq0iMz4ki9Mbk834n5V/o+UDRMxQnG1IxsqHRUi33TDeclrXovBHBb9jKzZZxALgg E+oVyNl0AUlZRsL43LwB9Ys3eoNoVP5TSvaYh5zRi+KdPMuvTPuK9tfhHX203Fr8SSxM xRBQ== X-Gm-Message-State: APjAAAXaDD8RxrfOmijHV6BfTCdCUfdtFjBwdu2KHr5oyE/vEOP7nQVk f7P+f1A+l02q+wjp3vQWwJ4= X-Google-Smtp-Source: APXvYqzjlvQpDqgIN1DodnZ200GDJkmlLRuqVHue8jCHNeCKZnFa5fJ5xybvIsAD+CSqppTYPnp1BQ== X-Received: by 2002:a17:907:375:: with SMTP id rs21mr3521284ejb.351.1579191193123; Thu, 16 Jan 2020 08:13:13 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a17:906:48c4:: with SMTP id d4ls2598527ejt.14.gmail; Thu, 16 Jan 2020 08:13:12 -0800 (PST) X-Received: by 2002:a17:906:b2d2:: with SMTP id cf18mr3726210ejb.93.1579191192388; Thu, 16 Jan 2020 08:13:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579191192; cv=none; d=google.com; s=arc-20160816; b=VhBJ4VVAbeHEL5CMbF+F/xhXKNfRmy8H6QocbwTGrdBTjH5Y37M2fdDXZqjlyMVtEI QRLhv/rug8QMaMQ/cSOncrAkslKvcBBGVX+UnW3wBGCltF2bVQpzx3QIGU1rrmwuacx2 pw+Sutcy2qatdimy9x+y0wi+CDBlAu1xmTmkdnjoYaqJdlR7LBoDKS9+o9XH6D6OsKfu 9patpvj6TKwfG+4QS8rrh9HR37ODenLSp4cdKfJtg1l8Ki/+gqSR6wiMEmxBntZuUq6y V4sNtL0P/wo1UpfHJxbG0IY0Y9XHbuHTkCiXJRojg0pjFpf0cntLy/t/ShLY0woT6btM K+uA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=oxCZfAf1W3lsHdn7IEA4sO0ZXIEMWcXSzWXspMz5NJY=; b=Ji/5nZTnTqN+A0zTF+A+LdhLFHj0fN1FxISva5wUAf9gG+PnhwX6Xa4LGeNA2MzawR KxNzOlS3TPE0M+8axoJ9PgVMUCbiz3DjKn/wsIwAPOZxxPDRfqAnva/YuKulScSxGrMv b2yUlq8naEdSf81EfZf1der3eOjANmJJmYdk0qokoTsRp6LRRo5eQUMXtohtcN5DwYqo i3hy3yqbsYhyKrrCywzpazeQUbBJEOCBDRv1wjekukL5eZDc09VTHRZn4rVK982zYBWE 8unR0Cwzph3Tt3uqnyK+xvzCOtG7T+a4SrrH+U2mzs/d0Idq4bNEvCAFvaoRy9kQ89sX L3vg== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=dprPTe2z; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com Received: from de-out1.bosch-org.com (de-out1.bosch-org.com. [139.15.230.186]) by gmr-mx.google.com with ESMTPS id cc24si1012723edb.5.2020.01.16.08.13.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Jan 2020 08:13:12 -0800 (PST) Received-SPF: pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) client-ip=139.15.230.186; Received: from fe0vm1649.rbesz01.com (unknown [139.15.230.188]) by si0vms0216.rbdmz01.com (Postfix) with ESMTPS id 47z8PN0rz1z1XLm4D; Thu, 16 Jan 2020 17:13:12 +0100 (CET) Received: from si0vm02576.rbesz01.com (unknown [10.58.172.176]) by fe0vm1649.rbesz01.com (Postfix) with ESMTPS id 47z8PN0WnPz1Mg; Thu, 16 Jan 2020 17:13:12 +0100 (CET) X-AuditID: 0a3aad0d-f57ff700000047b3-f5-5e208b97b1a5 Received: from si0vm1950.rbesz01.com ( [10.58.173.29]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by si0vm02576.rbesz01.com (SMG Outbound) with SMTP id 7E.7C.18355.79B802E5; Thu, 16 Jan 2020 17:13:11 +0100 (CET) Received: from SI-HUB2000.de.bosch.com (si-hub2000.de.bosch.com [10.4.103.108]) by si0vm1950.rbesz01.com (Postfix) with ESMTPS id 47z8PM6G6PzC9q; Thu, 16 Jan 2020 17:13:11 +0100 (CET) Received: from ninja.grb-fir.grb.de.bosch.com (10.19.187.97) by SI-HUB2000.de.bosch.com (10.4.103.108) with Microsoft SMTP Server id 15.1.1847.3; Thu, 16 Jan 2020 17:12:56 +0100 X-Patchwork-Original-From: "'Mark Jonas' via swupdate" From: 'Darko Komljenovic' via swupdate To: , CC: , , Kevin Zhang , Mark Jonas Subject: [swupdate] [PATCH 2/3] doc: handlers: add readback handler documentation Date: Thu, 16 Jan 2020 17:12:04 +0100 Message-ID: <20200116161205.12973-3-mark.jonas@de.bosch.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200116161205.12973-1-mark.jonas@de.bosch.com> References: <20200116161205.12973-1-mark.jonas@de.bosch.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgl+LIzCtJLcpLzFFi42Lhslorqzu9WyHO4NM0K4v2Uz4W03f+YHVg 8pg36wSLx56JJ9kCmKK4bFJSczLLUov07RK4Mp4/tiuYKVxxddJfpgbGlXxdjJwcEgImEu9X TWbvYuTiEBKYwSTxbMYjZghnN6NE//wjrBDOVkaJUxvbWUFa2AS0JG6e2MEMYosIGEpcf/eT CaSIWaCHUWL1my4mkISwgJvEh97lYA0sAqoS7cu3gTXwCthINPTeY4TYLS+xesMBsDingK3E 9PmfwXqFgGrOzmxghKgXlDg58wkLiM0sICFx8MUL5gmM/LOQpGYhSS1gZFrFKFacaVCWa2Bk am6mV5SUWlxlYKiXnJ+7iRESarw7GM99SzvEyMTBeIjRlINJSZRXZI9snBBfUn5KZUZicUZ8 UWlOarGSFG/9m85YIWG4cHFpUm5mcXFmft4hRgkOZiUR3pMzgPp4UxIrq1KL8iHaDjFKc7Ao ifOmc/jHCAmkJ5akZqemFqQWwWStOTiUJHg5uxTihASLUtNTK9Iyc0pg0kqyvIwMDAxCYsgy yNYycXAeYjTm4AHazQqMeiHe4oLE3OLMdKh2SYh2IZgoQuspRnMpcd6TIGsFQLIZpXlwW6Vk eL3nysUJiSJJIHS+YrzByMGoJMyb2wnUzANMggj7JHgbQEEkCBVEaDJaAtQjMJlN4v9qdYl5 O74ySny++IlJ4sjuaawSW1rb2SQ6Wn7ySFxZ/4ZX4vfn43wSfXN+8Ev0LD0mKLGvrVdU4l7b ZDGJFQ+mi0l8nnVfQmLCso1SEv+mPJST2Lp/g7zEolV96hKt61dpSlzuuKkjsWJOo67E+bMr jSRm7LhiJPF55R5jiR89q+wkNjdtd5KYMfuIi8S7w0s8JF48WuIrcefuNl+JziML/SUm/70Q 9AoYlkzAsJzgLAcKy5LEEixhCRVFeE6qgTH63hJvt1I2ruXOvN6PHj3ZI7H27wSxQ3sbLqdw K1/3Luhbf7kiftm1I1Ha0e8elrupTjiosfflz4eeahdO7pvSpz9J8Zp54BfNxkcOe1w+XDDY VvDq1ZuS9cbuojeXsn0rLZzBrf6WWb0grHLzW4UNEROr3f8WsV9cKlWqvEzzzq2IljNTDrEo sRRnJBpqMRcVJwIAowfW9hsEAAA= X-Original-Sender: mark.jonas@de.bosch.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=dprPTe2z; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com X-Original-From: Mark Jonas Reply-To: Mark Jonas 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: , From: Kevin Zhang Signed-off-by: Kevin Zhang Signed-off-by: Mark Jonas --- doc/source/handlers.rst | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/doc/source/handlers.rst b/doc/source/handlers.rst index 6b694af..e7182ba 100644 --- a/doc/source/handlers.rst +++ b/doc/source/handlers.rst @@ -642,4 +642,42 @@ of the two SSBL administration. | | | when this SSBL is set. | +-------------+----------+----------------------------------------------------+ +Readback Handler +---------------- +To verify that an image was written properly, this readback handler calculates +the sha256 hash of a partition (or part of it) and compares it against a given +hash value. + +The following example explains how to use this handler: + +:: + scripts: ( + { + device = "/dev/mmcblk2p1"; + type = "readback"; + properties: { + sha256 = "e7afc9bd98afd4eb7d8325196d21f1ecc0c8864d6342bfc6b6b6c84eac86eb42"; + size = "184728576"; + offset = "0"; + }; + } + ); + +All properties are mandatory. + +.. table:: Properties for readback handler + + +-------------+----------+----------------------------------------------------+ + | Name | Type | Description | + +=============+==========+====================================================+ + | device | string | The partition which shall be verified. | + +-------------+----------+----------------------------------------------------+ + | type | string | Identifier for the handler. | + +-------------+----------+----------------------------------------------------+ + | sha256 | string | Expected sha256 hash of the partition. | + +-------------+----------+----------------------------------------------------+ + | size | string | Data size (in bytes) to be verified. | + +-------------+----------+----------------------------------------------------+ + | offset | string | Offset (in bytes) to the start of the partition. | + +-------------+----------+----------------------------------------------------+ From patchwork Thu Jan 16 16:12:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: 'Darko Komljenovic' via swupdate X-Patchwork-Id: 1224323 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::53e; helo=mail-ed1-x53e.google.com; envelope-from=swupdate+bncbc6ynavgsakrbgmxqlyqkgqehirm6ji@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=googlegroups.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=fjS7tRf+; dkim-atps=neutral Received: from mail-ed1-x53e.google.com (mail-ed1-x53e.google.com [IPv6:2a00:1450:4864:20::53e]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47z8PS6ckJz9sP3 for ; Fri, 17 Jan 2020 03:13:16 +1100 (AEDT) Received: by mail-ed1-x53e.google.com with SMTP id c24sf14232536edy.9 for ; Thu, 16 Jan 2020 08:13:16 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1579191194; cv=pass; d=google.com; s=arc-20160816; b=uEkJcTLpgpXmiHWfKTNkKA5FLU/BK9Gvauco/Wykx/WHRwYG4mHIBun9XN7By0+Vln VdQvoXXCEl7VFIdzDnWUXGNDG0MpFNArManrAcLmEl9YzTx63I6oxaalSY+FoWUegA6B 6ih8B2rPSn+mK+mUi9irwx78vUAp41+64j/zM7cRSqC0BuY6KmQ1atjRyDf24Bqes190 AFOfQyes9pjg/qdLY5myYVlTY4KbY5Yo0kUoxtrxel/yaYr4SFZsFriAdq8TbDItVm0B SgH3LFioRL+ymwBmsBL7jt7UDwryhuare8jVmYVEipJdlSA3/S27+Qgkn9Ed/3TdBVLe Zeag== 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:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=Gmu7igR3OAvqdXkjB1ZnLVAOO66n6KJPPS8ZVnxkpIk=; b=zjyXL33euydxbHuN4fZCQnf1iyY/vc5U2Ea9J1IzUB9fFH6TaHhVUgeMN27RtykTH1 A2eCF8kHiWq7/44iAMgMizw5Anv0cNq8gaHhsnajLh6Z2Bbrptt7uy1QdgsLc6ch7oAi UlRVgN4EX2Z/XDSBXStT3ZRKJ+I7p8jsehb296wHC4AMUyWxe+wOkbyeSheN0jS2UHxm 5Lptwbj0mCyRwk+rFQEw7nGuJ+XhOch0qnsFeIxZnURGNZqCIM+w7UzPcF080Zd34pkO ghdi6eLwO/VAy9zi9vCSZBl3D9M/gTvLDlMgjUfNy2IWcFMfpD8WWsi+Rb3YpwuY8G4t VVtg== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=ivkKwOU4; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :reply-to:precedence:mailing-list:list-id:list-post:list-help :list-archive:list-subscribe:list-unsubscribe; bh=Gmu7igR3OAvqdXkjB1ZnLVAOO66n6KJPPS8ZVnxkpIk=; b=fjS7tRf+Rz10mlElqHo3C+i303vGfKhHOcWIDfnKQ9UOKOOydDx8vGUONa0PZJcm7S /z52QnTeFuluUZ3xlzyVG98vvyrYbyCjFlq4FdfCdNyvmfqCO7Ost80Bx0mrn4LGO4bh 29XfECe1Uf2nxN3JA867gYubr60aMxHwPs/59x/I46qE1SqA/f0zEG7OwVDbiS2jQfY+ x/WK5+z+mEgh66IbF6x3xy0wYGWDjLZ9IsdZSncserYlkeEioZsrmy9jY6oHcUwjOpGw KNw3xTM8OSzTx5YvhgQexIxnX4ayeNCny7Q2AC/YIwSicH3/lmtK6xwGPg+5qcVTlwWY Q3zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=Gmu7igR3OAvqdXkjB1ZnLVAOO66n6KJPPS8ZVnxkpIk=; b=TnOl+M5DK0Z+HZ0ZBQYHb01Ab4WxOEll56ZBnG0jFc4YYaa1w62OaD/sZW8o9ctu29 B+YEFu7yvoMK01TAiR06dMlOP6WxmJ9HRmMWBVAbuRCSW1slapuZ86lsW4/4jbfBD0Il FyRljFPagKW248XQqgwFFIoh4F16ijD1TbsbyqfICumtuTixQv+f8v+NV3qA3yUVgAsQ T8nQT09yVoEihPFS6bCOkQgK+4cqdyOOasPPzQrmWsjRmdvFopLJEKQTIq3LPtuWIC6E A5AGknuePQU/hrHHAVOBD77sxHmFtE0y+Bt5zUTAFAdpiSzNaAtvhla1akpoz+0G1I5P J5Ig== X-Gm-Message-State: APjAAAVg2nelEzd63m1fu1GmXc61gQTwKD2qESiWv6X5qc4PN7WdVxKG p4qR6F/Pn78O/8y7g+ETbAE= X-Google-Smtp-Source: APXvYqyCOjYP8nSZ8kxFoCw4XzUFkzH4rE/5gbuQMKz5N6aHlYn/F9U/1obkwHu6ey5BRi94QIDvWw== X-Received: by 2002:a50:fd15:: with SMTP id i21mr37489309eds.91.1579191194055; Thu, 16 Jan 2020 08:13:14 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a50:fd15:: with SMTP id i21ls5307446eds.9.gmail; Thu, 16 Jan 2020 08:13:13 -0800 (PST) X-Received: by 2002:aa7:d64f:: with SMTP id v15mr37196546edr.71.1579191193435; Thu, 16 Jan 2020 08:13:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579191193; cv=none; d=google.com; s=arc-20160816; b=cX8hZ2LzN/KW4RS1Kmplxys2rBxKcqAUh31zKug5FN7hKUm2yxjibKZlxHhNW83WAL 711TGDzfPHuDtnjLzgWn9UAP2vtx/Nk0NmW+uAXe0AAP3gCsj7myzO2iNjUrHCMm+Ew3 PK0XPx3sk/1NJr+IjPk1u0QIpEMXXdY1UGdV4wjT69c8TqczfLC0VIZ52iAyO/O674s5 vAyxCiUnwckCAMnAVK4eqyfzTk5Qaa2HXUVbJjSPDEPyW2Ea43KqHXk4ry2OnqRTfzsV gSsf3Ny0Ms7bSKNk6nWRrgoVzAviT2nro/cRAGE17qFkyrtvskel5+Iq2CST1F6lWCAd Ia3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=L9oALokXi+EqwkbggHtdAC67b9DBwtaxyxPZyZWOZkE=; b=MxENnVA8iEyZJIWxWYSNCcuFcti+36Cy6Rz17a8gf6w1GCH1wtyrCiXwRt9d9ghsmT DH7L73gUgOi/6F5dqHKooBi8GJO4vVYLx9GQEuRxXQ72AenNtt0/rj0tiPO46LKOlQg0 LX+0uJMMIs0OCYlmDPRo0oTLaob52+Hofu3fCrsaJznzY2dxes40HWILbgmv9SdeOkjy Gzm1Pb5KHac1eg9JjGhDZ7hVGGaYjv1N6HTDxXCtEsRFK02lhCLlWsyYSCjaykFxQayp TgbkzTY4HPjWv9GZtaFdAAwFkt6rgchPIErBS9hqAsdwF/hWObUS0GDRtPTSK6dQDyW1 ippA== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=ivkKwOU4; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com Received: from de-out1.bosch-org.com (de-out1.bosch-org.com. [139.15.230.186]) by gmr-mx.google.com with ESMTPS id d29si1012869edj.0.2020.01.16.08.13.13 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Jan 2020 08:13:13 -0800 (PST) Received-SPF: pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) client-ip=139.15.230.186; Received: from si0vm1948.rbesz01.com (unknown [139.15.230.188]) by fe0vms0186.rbdmz01.com (Postfix) with ESMTPS id 47z8PP1Bmrz1XLFjd; Thu, 16 Jan 2020 17:13:13 +0100 (CET) Received: from si0vm2082.rbesz01.com (unknown [10.58.172.176]) by si0vm1948.rbesz01.com (Postfix) with ESMTPS id 47z8PP13MSz1Tr; Thu, 16 Jan 2020 17:13:13 +0100 (CET) X-AuditID: 0a3aad16-083ff70000004782-50-5e208b98e13e Received: from si0vm1949.rbesz01.com ( [10.58.173.29]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by si0vm2082.rbesz01.com (SMG Outbound) with SMTP id DA.DB.18306.89B802E5; Thu, 16 Jan 2020 17:13:12 +0100 (CET) Received: from SI-HUB2000.de.bosch.com (si-hub2000.de.bosch.com [10.4.103.108]) by si0vm1949.rbesz01.com (Postfix) with ESMTPS id 47z8PN6KgGz6CjZNg; Thu, 16 Jan 2020 17:13:12 +0100 (CET) Received: from ninja.grb-fir.grb.de.bosch.com (10.19.187.97) by SI-HUB2000.de.bosch.com (10.4.103.108) with Microsoft SMTP Server id 15.1.1847.3; Thu, 16 Jan 2020 17:13:12 +0100 X-Patchwork-Original-From: "'Mark Jonas' via swupdate" From: 'Darko Komljenovic' via swupdate To: , CC: , , Mark Jonas Subject: [swupdate] [PATCH 3/3] doc: handlers: trim trailing whitespaces Date: Thu, 16 Jan 2020 17:12:05 +0100 Message-ID: <20200116161205.12973-4-mark.jonas@de.bosch.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200116161205.12973-1-mark.jonas@de.bosch.com> References: <20200116161205.12973-1-mark.jonas@de.bosch.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA21SXUwTaRTtN23ptOnoMLRwtwroIFER+XONRNGY+KJxk5VXA0grQzsKlHQK EbIJTVylgJCiYrEEVJCwK7uAUE1rasUm/oAaRVGE6LqN1RhEdtfqZl2NcYaC7YNvZ+455577 nQwupmplGpwtMzOmMm0JHaWQKDb+Hr+2tWFZQUaPf2N27egP2Xb3f9Kt2PYOx03Jdk/zSNQu bLcip4gpYSsZU/qWQoVhwPlcWj6sOTDVFRBb0B+qeiTHgfweeoemJQKmSDsGgT8N9UjBYy+C 675mWejjAgK//4xUUEWRKTB50yUWsIrMhInZD5iAxeReuDjqnNPEkJth1vN0bquETAbro79l AibIHPDPeqWh5EToHRie2yPn9fZTQSx0RQ7cOWlBIX00jJwMSEL7Aa6+eiW2ocWOCMoRQZ1G 2Dmk5tiMytKsjOysNJOO4aozMtP2GksHUaizWBfqHi32IQxHPrQex2g1ofLEF1CLdMaiKoOW M+wxVZQwHK0hambq8qmYr2OuQlfKchxrLPMhwMW0ihhp5X1EkbaqmjEZQzYfWoJL6DhCj/+Y R5F6rZnZzzDljGmB3YTjNBDy+mUFVLSJ0TMHitkS8wJNxxNIJBJRsZFMZCyGy31oHa7ks911 /AqCK9eWcqx+3v5dyE4tTMPWUbRBE0ewVt5DCqyhouxrqmYpsbM9oYBSRxBh5zSaRDiiY4gG 4WYl/wOG84CwCBVFzw/Dpqxu3kM+VkKH6z2C1q4hDIJjbzFwHqqNgvuXHDJw/zIsg5mDLXII Dv6shM+PDxIw3j9DwMi7lkUw/rFhMbR9aFKB1dOgBu/hRjVcmXgdBy232gGCjmcAtr6ppeDo /ycePh/3J8D4r1OJcHbMvRzc3tM0PAlak3jiTRJ0tjQlQ+e5ppXQ1xdYDc4X4ynwwDqZyt9S lz7Nl4nxZdq2JQhlmrXmb5Q5Pw2/TmNBubpgr+2TpS1YTPVIf1rR6K907a+RVza+vczUM5/+ t/uXXPMMdKfan5Fpt3duGVImOx9SN84P7N6XPptV1cYUOgcLyUCNiOpq1q3S/+s99npih2iN asWRs6zh0jrjVnPuqXuuo8zd2oTYxhvX7/5V3f/ufd7LE0fzkzptaR2/ra+iJZxBm5kiNnHa L2cIpC0aBAAA X-Original-Sender: mark.jonas@de.bosch.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=ivkKwOU4; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com X-Original-From: Mark Jonas Reply-To: Mark Jonas 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: , From: Kevin Zhang Signed-off-by: Kevin Zhang Signed-off-by: Mark Jonas Reviewed-by: Stefano Babic --- doc/source/handlers.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/source/handlers.rst b/doc/source/handlers.rst index e7182ba..5234a69 100644 --- a/doc/source/handlers.rst +++ b/doc/source/handlers.rst @@ -227,7 +227,7 @@ In analogy to C handlers, the prototype for a Lua handler is where ``image`` is a Lua table (with attributes according to :ref:`sw-description's attribute reference `) -that describes a single artifact to be processed by the handler. +that describes a single artifact to be processed by the handler. Note that dashes in the attributes' names are replaced with underscores for the Lua domain to make them idiomatic, e.g., @@ -275,7 +275,7 @@ a different type of artifact than the Lua handler is registered for, the ``image`` table's values must satisfy the called C handler's expectations: Consider the above Lua handler being registered for "images" (``swupdate.HANDLER_MASK.IMAGE_HANDLER``) -via the ``swupdate.register_handler()`` call shown above. As per the +via the ``swupdate.register_handler()`` call shown above. As per the :ref:`sw-description's attribute reference `, the "images" artifact type doesn't have the ``path`` attribute but the "file" artifact type does. So, for calling the ``rawfile`` @@ -328,10 +328,10 @@ Using the ``image:read()`` method, an artifact's contents may be on preexisting C handlers for the purpose intended. -Just as C handlers, a Lua handler must consume the artifact -described in its ``image`` parameter so that SWUpdate can +Just as C handlers, a Lua handler must consume the artifact +described in its ``image`` parameter so that SWUpdate can continue with the next artifact in the stream after the Lua handler -returns. Chaining handlers, calling ``image:copy2file()``, or using +returns. Chaining handlers, calling ``image:copy2file()``, or using ``image:read()`` satisfies this requirement. @@ -381,7 +381,7 @@ format: :: - + INIT: The external installer is informed about the size of the image to be @@ -631,9 +631,9 @@ of the two SSBL administration. +-------------+----------+----------------------------------------------------+ | Name | Type | Description | +=============+==========+====================================================+ - | device | string | MTD device where the SSBL Admin Header is stored | + | device | string | MTD device where the SSBL Admin Header is stored | +-------------+----------+----------------------------------------------------+ - | offset | hex | Offset of SSBL header inside the MTD device | + | offset | hex | Offset of SSBL header inside the MTD device | +-------------+----------+----------------------------------------------------+ | imageoffset | hex | Offset of the image to be loaded by a bootloader | | | | when this SSBL is set. |