From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1klu6E-0006EB-Qv for mharc-grub-devel@gnu.org; Sun, 06 Dec 2020 08:29:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50114) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1klu6D-0006Dw-Bd for grub-devel@gnu.org; Sun, 06 Dec 2020 08:29:13 -0500 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:51315) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1klu6B-00032w-GE for grub-devel@gnu.org; Sun, 06 Dec 2020 08:29:13 -0500 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id 08F539FE; Sun, 6 Dec 2020 08:29:09 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Sun, 06 Dec 2020 08:29:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=fm2; bh=Dj3VuscUKrw68YyJDOPKcZUyIPd e1J7yltPhrxbJ+P0=; b=PNvZSQsZeizpuYzlEmk2Fpc1tndX29MB47T9ZFAocFE FVNSoVlARtQ8E2KJLPz2fh8dM4dUowSQWUZ8ehj8896RS9D56XOPqJeRrLts74Zf dBN96IvaEudv9TZYKSLtd4441f0RRrYsPqATEEe6EntAOID2FCx551NKlB9xDmDw 4sPNhGAx5nDH9OpE00C0vyRK8opi5/3yGkb+HG+YS89UeGuHQsFYT5Wem05NZHqe QFHbLulUmRd9R83AElw0mShc5ASVWkkA7y+iRJW9bppmRxoujAprji4lKnN9DuVX widCcfGjtHElfR7lK+FjthhIgOWnD6F85hovUHNAC7Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=Dj3Vus cUKrw68YyJDOPKcZUyIPde1J7yltPhrxbJ+P0=; b=XiuBgbmCyHMYtFg0j3/rLl WrOY4en3rEyHhCuq49wv3y4ailN+LcX1nTD+K6ky6FaU9g8RMqAdVkktyRn5WpMS zp/YdpYncDuxcjhPqEn43K3ss6w9/RLnwuANc5IyTv43twaDVjw6v3056XB9YZtz FJEVYRgwOfSd3hoXvczhTriPvmhAH6Mge7B03gbAYF6QTzbASnFv8Pwlzf9EcHyq 3Xgs+KHLGNik4FRdTiJRdSzg+W9wQ5koRpCqvGH+pWCWcn0pDth+s/2SV8nPA4nX AzHu+XXSyvYZVLI19dCpExQkqMhNrTe5l1Sgxv/oJzvSM8y9EpP6IcVMGUy433mQ == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrudejvddgheefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvffukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpefrrghtrhhi tghkucfuthgvihhnhhgrrhguthcuoehpshesphhkshdrihhmqeenucggtffrrghtthgvrh hnpeehgefhtdefueffheekgfffudelffejtdfhvdejkedthfehvdelgfetgfdvtedthfen ucfkphepjeejrddukeefrddujedruddutdenucevlhhushhtvghrufhiiigvpedunecurf grrhgrmhepmhgrihhlfhhrohhmpehpshesphhkshdrihhm X-ME-Proxy: Received: from vm-mail (x4db7116e.dyn.telefonica.de [77.183.17.110]) by mail.messagingengine.com (Postfix) with ESMTPA id 81532108005C; Sun, 6 Dec 2020 08:29:08 -0500 (EST) Received: from localhost (ncase [10.192.0.11]) by vm-mail (OpenSMTPD) with ESMTPSA id 4b9344d8 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sun, 6 Dec 2020 13:29:06 +0000 (UTC) Date: Sun, 6 Dec 2020 14:29:06 +0100 From: Patrick Steinhardt To: Glenn Washburn Cc: grub-devel@gnu.org, Daniel Kiper Subject: Re: [PATCH v7 05/17] luks2: Add json_slot_key member to struct grub_luks2_keyslot/segment/digest Message-ID: References: <35f47644cdc76e65a5d51a625c4a790fc10b437c.1607098915.git.development@efficientek.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="hJDGufke98npyRMp" Content-Disposition: inline In-Reply-To: <35f47644cdc76e65a5d51a625c4a790fc10b437c.1607098915.git.development@efficientek.com> Received-SPF: pass client-ip=64.147.123.24; envelope-from=ps@pks.im; helo=wout1-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-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: Sun, 06 Dec 2020 13:29:13 -0000 --hJDGufke98npyRMp Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Dec 04, 2020 at 10:43:34AM -0600, Glenn Washburn wrote: > This allows code using these structs to know the named key associated with > these json data structures. In the future we can use these to provide bet= ter > error messages to the user. >=20 > Get rid of idx variable in luks2_get_keyslot() which was overloaded to be > used for both keyslot and segment slot keys. >=20 > Signed-off-by: Glenn Washburn Personally, I'd have named them `json_slot_idx`. But you've already done so much work on improving the code that I don't want this to be the reason to not give an SOB, especially considering that it's a strict improvement anyway. So: Signed-off-by: Patrick Steinhardt > --- > grub-core/disk/luks2.c | 14 +++++++++----- > 1 file changed, 9 insertions(+), 5 deletions(-) >=20 > diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c > index eadd529e9..437c1da07 100644 > --- a/grub-core/disk/luks2.c > +++ b/grub-core/disk/luks2.c > @@ -65,6 +65,8 @@ typedef struct grub_luks2_header grub_luks2_header_t; > =20 > struct grub_luks2_keyslot > { > + /* The integer key to the associative array of keyslots */ > + grub_uint64_t json_slot_key; > grub_int64_t key_size; > grub_int64_t priority; > struct > @@ -103,6 +105,7 @@ typedef struct grub_luks2_keyslot grub_luks2_keyslot_= t; > =20 > struct grub_luks2_segment > { > + grub_uint64_t json_slot_key; > grub_uint64_t offset; > const char *size; > const char *encryption; > @@ -112,6 +115,7 @@ typedef struct grub_luks2_segment grub_luks2_segment_= t; > =20 > struct grub_luks2_digest > { > + grub_uint64_t json_slot_key; > /* Both keyslots and segments are interpreted as bitfields here */ > grub_uint64_t keyslots; > grub_uint64_t segments; > @@ -261,12 +265,11 @@ luks2_get_keyslot (grub_luks2_keyslot_t *k, grub_lu= ks2_digest_t *d, grub_luks2_s > { > grub_json_t keyslots, keyslot, digests, digest, segments, segment; > grub_size_t i, size; > - grub_uint64_t idx; > =20 > /* Get nth keyslot */ > if (grub_json_getvalue (&keyslots, root, "keyslots") || > grub_json_getchild (&keyslot, &keyslots, keyslot_idx) || > - grub_json_getuint64 (&idx, &keyslot, NULL) || > + grub_json_getuint64 (&k->json_slot_key, &keyslot, NULL) || > grub_json_getchild (&keyslot, &keyslot, 0) || > luks2_parse_keyslot (k, &keyslot)) > return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse keyslot %= "PRIuGRUB_SIZE, keyslot_idx); > @@ -278,11 +281,12 @@ luks2_get_keyslot (grub_luks2_keyslot_t *k, grub_lu= ks2_digest_t *d, grub_luks2_s > for (i =3D 0; i < size; i++) > { > if (grub_json_getchild (&digest, &digests, i) || > + grub_json_getuint64 (&d->json_slot_key, &digest, NULL) || > grub_json_getchild (&digest, &digest, 0) || > luks2_parse_digest (d, &digest)) > return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse digest %"PRI= uGRUB_SIZE, i); > =20 > - if ((d->keyslots & (1 << idx))) > + if ((d->keyslots & (1 << k->json_slot_key))) > break; > } > if (i =3D=3D size) > @@ -295,12 +299,12 @@ luks2_get_keyslot (grub_luks2_keyslot_t *k, grub_lu= ks2_digest_t *d, grub_luks2_s > for (i =3D 0; i < size; i++) > { > if (grub_json_getchild (&segment, &segments, i) || > - grub_json_getuint64 (&idx, &segment, NULL) || > + grub_json_getuint64 (&s->json_slot_key, &segment, NULL) || > grub_json_getchild (&segment, &segment, 0) || > luks2_parse_segment (s, &segment)) > return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse segment %"PR= IuGRUB_SIZE, i); > =20 > - if ((d->segments & (1 << idx))) > + if ((d->segments & (1 << s->json_slot_key))) > break; > } > if (i =3D=3D size) > --=20 > 2.27.0 >=20 --hJDGufke98npyRMp Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEF9hrgiFbCdvenl/rVbJhu7ckPpQFAl/M3KEACgkQVbJhu7ck PpQQPw/6AqcIvgyAig5hYf06PD6hjAsHzF7cBySIsZx3wLbysUjw1IqDeebYfw77 +Uv8YtlkwMRht16Teni8rFqmK+eg/7GcxzMby0veXmDW1JNc5xTKIJf/1QZkrxyh w2nLOPlJeHZazFAKD3Da7iZf5EfgLTpsfY7Cosy1naW+TltjF/iDjIVz57oQfWV4 TAH7jOREAirqEq1IHBPTMCCuCvuVy7S6WMkwmglbx/Y7QNIwEd3oPWtk6woYabjE RqFCgpu7MVJyKwMj9TTYUQUpQKfrF7u93nCXviTQbo+RtRoPSd/fllSgRHoWzzw9 OquGUQ+WYWBEMcUFFKUN20ZM5673M1fC15MGwWzWYs4kfDTDPTRGqHUNfqZiugDF B4orBxKbV/xbgcAz7K98wIX1Mk+lXV+7E61h0sMM5gvMy16qGc+WLiyBWiWvnHid 9ZHBKpZ0Hbk0MFhdqEkYusb84yOAuMgi5tZ6G1iZ4gfx9e/d3cf/64ajKO3nZLSu /2Nc9ajuJzg1xZZ4idXiSPXEYieRYcN9pO5CJ8m4EQffzEqjb1atfEOIu0LbMjiO QyNSywaJctroC5rU96PLF27e6jSXRnKGwBqtI9R3dNAgjN62DfJPojLd8fcdIH5s NUe2c5bMyvxs7h0tT9uYqHe2bIRzC/WxNZcusA1s0GfQ5Uoj78U= =t+Vd -----END PGP SIGNATURE----- --hJDGufke98npyRMp--