From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kX7Bz-0003RR-RA for mharc-grub-devel@gnu.org; Mon, 26 Oct 2020 14:26:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40036) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kX7Bx-0003PH-DC for grub-devel@gnu.org; Mon, 26 Oct 2020 14:26:01 -0400 Received: from mail-ot1-x344.google.com ([2607:f8b0:4864:20::344]:34566) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kX7Bu-0000oP-SS for grub-devel@gnu.org; Mon, 26 Oct 2020 14:26:00 -0400 Received: by mail-ot1-x344.google.com with SMTP id k3so8311274otp.1 for ; Mon, 26 Oct 2020 11:25:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficientek-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-transfer-encoding; bh=DbwUlDXsCC/B/NZf1K2/yNqYpZ5jfwRbPPJYRZKbV+Y=; b=c7M+P9CQWhl1Q9xgdGSv1PH9RovxM/5pU1yZD/H9S1cFRycPXBPlJW+HTPw7sjH6vO R74Ao+OV7oQ+b7Wy4GLNn0Eg+Nr48ZvF0nKGMZz0YTjfgaRsMLfWNfWbWiFaFu1BqP1/ 75qLaajuhioNxBNU1Z+AgXPstHn1lzuF7SihjJosWsVGebDke3roFH9QaKXKwa8a/oOC KKY1ZVqqP0RCv8OjKVYr+Ll318vpHXqC1cNekGGdbjbsQuX0LRFxzypkyh85dnjHvj+A Tg/oRl3fFGshqoBocAj1zk351+X3QmUY7KKcyTCslCYOCvzRIn1rrZlV3kbf8KVuv+bD fi3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:message-id:in-reply-to :references:subject:mime-version:content-transfer-encoding; bh=DbwUlDXsCC/B/NZf1K2/yNqYpZ5jfwRbPPJYRZKbV+Y=; b=VGbifhMoyfzHr5XMP1i+4GzJ3etN9yJRuXSJVnO/0KM+3U8eLLBsAI8Taek/8KQtR7 PFhomMjNiMd4luE8KV/B7tqx7N4dXfluHUFT98LbWejrjqd6HcPRf9zVWMp7ZpoVnwQY MrJhjEmKrefFK9tmLpkflrXB0zi4qnrmi9Sz4iiY975d9mG0K7JYg60vEXwb9VlGxYVW p3VHyzW1WRKzoIZ05HDcmxNc9mExqUTuLZnH4G7YvCLLoHedHJrTrJZN4kPEWToDuQ7t nxd8J16Aha0aHmE/Ykk8+BFXx+Qj708eW93QyfD2L+V6H/70/egv29KTfhXhVQRyHL3k bkYQ== X-Gm-Message-State: AOAM532/95smXbif/kPpTGc5XfK7PHP/B9rAslxvhCi8C1YbT9uEMzMQ 9gdxQyl+44ulJq0Z9lpNg0CYZw== X-Google-Smtp-Source: ABdhPJzwx3tL2GGN3d+PA7kpfL5IYHBRVBvzTSOrOAQnBVNVSbKCPoPjllZs/eEKJgW7XBN3YxRJsQ== X-Received: by 2002:a9d:1449:: with SMTP id h67mr11930382oth.136.1603736756557; Mon, 26 Oct 2020 11:25:56 -0700 (PDT) Received: from [127.0.0.1] ([172.58.99.106]) by smtp.gmail.com with ESMTPSA id u125sm4590376oif.21.2020.10.26.11.25.55 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Oct 2020 11:25:55 -0700 (PDT) Date: Mon, 26 Oct 2020 18:25:53 +0000 (UTC) From: Glenn Washburn To: Patrick Steinhardt Cc: grub-devel@gnu.org, Daniel Kiper Message-ID: In-Reply-To: <20201023180101.GF810@tanuki> References: <20201009100122.GH2088@tanuki> <3918a9013156f71e01de05971b5441c0d9d09102.1603148099.git.development@efficientek.com> <20201023180101.GF810@tanuki> Subject: Re: [PATCH v3 07/10] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Correlation-ID: Received-SPF: pass client-ip=2607:f8b0:4864:20::344; envelope-from=development@efficientek.com; helo=mail-ot1-x344.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Oct 2020 18:26:01 -0000 Oct 23, 2020 1:00:59 PM Patrick Steinhardt : > On Mon, Oct 19, 2020 at 06:09:55PM -0500, Glenn Washburn wrote: >> This should improve readability of code by providing clues as to what th= e >> value represents. >> >> Signed-off-by: Glenn Washburn >> --- >> grub-core/disk/cryptodisk.c | 12 +++++++----- >> include/grub/types.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 3= +++ >> 2 files changed, 10 insertions(+), 5 deletions(-) >> >> diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c >> index 623f0f396..1a91c2d55 100644 >> --- a/grub-core/disk/cryptodisk.c >> +++ b/grub-core/disk/cryptodisk.c >> @@ -297,19 +297,21 @@ grub_cryptodisk_endecrypt (struct grub_cryptodisk = *dev, >> } >> break; >> case GRUB_CRYPTODISK_MODE_IV_BYTECOUNT64: >> -=C2=A0=C2=A0 iv[1] =3D grub_cpu_to_le32 (sector >> (32 - log_sector_siz= e)); >> +=C2=A0=C2=A0 /* The IV is the 64 bit byte offset of the sector. */ >> +=C2=A0=C2=A0 iv[1] =3D grub_cpu_to_le32 (sector >> (GRUB_TYPE_BIT(iv[0]= ) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 - log_sector_size)); >> iv[0] =3D grub_cpu_to_le32 ((sector << log_sector_size) >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 & 0xFFFFFF= FF); >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 & GRUB_TYP= E_MAX(iv[0])); >> break; >> case GRUB_CRYPTODISK_MODE_IV_BENBI: >> { >> grub_uint64_t num =3D (sector << dev->benbi_log) + 1; >> -=C2=A0=C2=A0=C2=A0=C2=A0 iv[sz - 2] =3D grub_cpu_to_be32 (num >> 32); >> -=C2=A0=C2=A0=C2=A0=C2=A0 iv[sz - 1] =3D grub_cpu_to_be32 (num & 0xFFFFF= FFF); >> +=C2=A0=C2=A0=C2=A0=C2=A0 iv[sz - 2] =3D grub_cpu_to_be32 (num >> GRUB_T= YPE_BIT(iv[0])); >> +=C2=A0=C2=A0=C2=A0=C2=A0 iv[sz - 1] =3D grub_cpu_to_be32 (num & GRUB_TY= PE_MAX(iv[0])); >> } >> break; >> case GRUB_CRYPTODISK_MODE_IV_ESSIV: >> -=C2=A0=C2=A0 iv[0] =3D grub_cpu_to_le32 (sector & 0xFFFFFFFF); >> +=C2=A0=C2=A0 iv[0] =3D grub_cpu_to_le32 (sector & GRUB_TYPE_MAX(iv[0]))= ; >> err =3D grub_crypto_ecb_encrypt (dev->essiv_cipher, iv, iv, >> dev->cipher->cipher->blocksize); >> if (err) >> diff --git a/include/grub/types.h b/include/grub/types.h >> index 035a4b528..8b4267ebd 100644 >> --- a/include/grub/types.h >> +++ b/include/grub/types.h >> @@ -319,4 +319,7 @@ static inline void grub_set_unaligned64 (void *ptr, = grub_uint64_t val) >> >> #define GRUB_CHAR_BIT 8 >> >> +#define GRUB_TYPE_BIT(type) (sizeof(type) * GRUB_CHAR_BIT) > > Hum. I'd rather name this `GRUB_TYPE_BITS`, as the current name implies > that we only get a single bit. Other than that the change looks good to > me and I agree that it helps readability. > > Patrick Yes, I would've liked to also, but I decided to stick with the naming conve= ntion as can be seen in the definition of GRUB_CHAR_BIT above it. Should th= ere be a separate patch renaming GRUB_CHAR_BIT also? > >> +#define GRUB_TYPE_MAX(type) ((2 * ((1ULL << (GRUB_TYPE_BIT(type) - 1)) = - 1)) + 1) >> + >> #endif /* ! GRUB_TYPES_HEADER */ >> -- >> 2.27.0 >>