From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kUeKf-0000bM-21 for mharc-grub-devel@gnu.org; Mon, 19 Oct 2020 19:12:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40736) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kUeKd-0000X3-1S for grub-devel@gnu.org; Mon, 19 Oct 2020 19:12:47 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:37266) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kUeKW-0007V8-VS for grub-devel@gnu.org; Mon, 19 Oct 2020 19:12:46 -0400 Received: by mail-ot1-x343.google.com with SMTP id m22so1513262ots.4 for ; Mon, 19 Oct 2020 16:12:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficientek-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jYG13T6cj7rcHcGiIyues1iqtm4Bgs9ZMGZUTsxjngE=; b=Di+VOs+lRkZOg2fZPH/KvWLA5HhLywjKN8AQ2LuR3lGxa0aMJSG+y0c9XezglvP7Yz 8cc0Cdzn/QrzlIrl0hqQhX3B1zYOPhN9G5LaYNtrXvE72w5fLGYyZJpnBLyTJCh3wEvw o/bGVk/LueeToIJYcvRsdBTTagKkTUaeDGoTG+TFCI04guQx3yil0prEiYH9Dr/Mm5h4 HqdO33wWiyKijEIZdYU9FGbsyl9dUwxGNNydz2V6emn8M1wM9e0WRPBMMs4lyGIg4Cx0 ZgOFamLyDoCvgWPws2QdUiFpFDYTDM3LI2hI9ewpstZAo07jVi3Zw4SSTeRDhYp63Pab 57SA== 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:content-transfer-encoding; bh=jYG13T6cj7rcHcGiIyues1iqtm4Bgs9ZMGZUTsxjngE=; b=Y4tVAbbvkGnETia9QqCx5cqp+yCg2a7vURKyrZl1OnjNxagMtvu2/mYbMleoVUitAc 89k42nwrry5WjfdmkcAsOSY4wvCyOtMsatPMK4JiKhagDmGFNlkJtFT0vdpj2xl2Isvw U1cpw4kkz9lEYKvG/epmH2DAkVnKTiW9z9FAOSBFkhj6+0Hdv53amdu0s+B6qvyQhA8I cM2un/Rlr+d9hd1qDjYTIULOR2Nc/0Mj2Upu5JORui8LLTQSIn+/nxKaOyII3MRkJTk7 Nev6/Vg7RMPTiupAPsyM3aLFOTvV2vIsx1TqCFois3zRvH6X+d53VkiIJGQDa9zJ91Q0 nKaw== X-Gm-Message-State: AOAM532nMDc3366bhJQz03SFz8egvn1hZfZj4vsVhrjM4drlEB6ab+/O EmVWulBgWNoJtlXs7DYzfJviNizjD+HWeA== X-Google-Smtp-Source: ABdhPJwPZfjGXk95dx8j8yVASQOJO1fDKMHuGFcmnwfOxt3Aror2yX8a1S91881Jzu43HrRHJvrEfQ== X-Received: by 2002:a9d:2037:: with SMTP id n52mr1596319ota.320.1603149159027; Mon, 19 Oct 2020 16:12:39 -0700 (PDT) Received: from localhost.localdomain (47-218-232-180.bcstcmtk03.res.dyn.suddenlink.net. [47.218.232.180]) by smtp.gmail.com with ESMTPSA id d27sm310848otc.6.2020.10.19.16.12.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Oct 2020 16:12:38 -0700 (PDT) From: Glenn Washburn To: grub-devel@gnu.org Cc: Patrick Steinhardt , Daniel Kiper , Glenn Washburn Subject: [PATCH v3 07/10] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt. Date: Mon, 19 Oct 2020 18:09:55 -0500 Message-Id: <3918a9013156f71e01de05971b5441c0d9d09102.1603148099.git.development@efficientek.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: <20201009100122.GH2088@tanuki> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=development@efficientek.com; helo=mail-ot1-x343.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, 19 Oct 2020 23:12:47 -0000 This should improve readability of code by providing clues as to what the value represents. Signed-off-by: Glenn Washburn --- grub-core/disk/cryptodisk.c | 12 +++++++----- include/grub/types.h | 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: - iv[1] = grub_cpu_to_le32 (sector >> (32 - log_sector_size)); + /* The IV is the 64 bit byte offset of the sector. */ + iv[1] = grub_cpu_to_le32 (sector >> (GRUB_TYPE_BIT(iv[0]) + - log_sector_size)); iv[0] = grub_cpu_to_le32 ((sector << log_sector_size) - & 0xFFFFFFFF); + & GRUB_TYPE_MAX(iv[0])); break; case GRUB_CRYPTODISK_MODE_IV_BENBI: { grub_uint64_t num = (sector << dev->benbi_log) + 1; - iv[sz - 2] = grub_cpu_to_be32 (num >> 32); - iv[sz - 1] = grub_cpu_to_be32 (num & 0xFFFFFFFF); + iv[sz - 2] = grub_cpu_to_be32 (num >> GRUB_TYPE_BIT(iv[0])); + iv[sz - 1] = grub_cpu_to_be32 (num & GRUB_TYPE_MAX(iv[0])); } break; case GRUB_CRYPTODISK_MODE_IV_ESSIV: - iv[0] = grub_cpu_to_le32 (sector & 0xFFFFFFFF); + iv[0] = grub_cpu_to_le32 (sector & GRUB_TYPE_MAX(iv[0])); err = 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) +#define GRUB_TYPE_MAX(type) ((2 * ((1ULL << (GRUB_TYPE_BIT(type) - 1)) - 1)) + 1) + #endif /* ! GRUB_TYPES_HEADER */ -- 2.27.0