From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1mX6iN-0007f5-Nk for mharc-grub-devel@gnu.org; Sun, 03 Oct 2021 14:59:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35366) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mX6iL-0007ew-UZ for grub-devel@gnu.org; Sun, 03 Oct 2021 14:59:58 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:50567) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mX6iK-0003G4-42 for grub-devel@gnu.org; Sun, 03 Oct 2021 14:59:57 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 37AE45C0120; Sun, 3 Oct 2021 14:59:53 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Sun, 03 Oct 2021 14:59:53 -0400 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=5EKJ5HrEvTigpldu8raoHyDgmva ZSRm5G7vs8AJ842c=; b=bRAfubkBW+n5DPLVrq9AmHVlZr5+/s+Z+LqnOgtD4+2 6kLgRES7Xr4MBMFa8i7qob3UXTOVfXTn57zgx1CNHCpIq/Dzj3XgroJtV+6FdT1D 87nUJ94U0RDRZhUlum7ynzR9wnZpRDkwmZ2RgVv4tzEdXIEcEYRGsQJ0cZ9FUEUn UYybactbtMiMwMOoVoTwB2DmJTNar2brf1/hKO8cLyTobdqOIrzGOBMjvF082UY0 MuvAeGgPa2HjRmY834z80WrkJ75PrOdGRV+/1lSILyDZ5Zt7ufDqYHh1dHf5RBK9 iKbgEtYHJIWe318s38czRnH01/sZ8bBZwtF9mPA2MXA== 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=5EKJ5H rEvTigpldu8raoHyDgmvaZSRm5G7vs8AJ842c=; b=kINrAFFrw2yPSzXjjx4trA wzOQEB8/97cQOcwtQN8fTF6u0Rzgo0m4OJ04XsZSgwsrccqr25dE6lKBGa7FScfp KraPJ165IKtGMrvsvzyteUv5wa2PkZ0FmoDg0oF4+rT5RizlGLqzm+skQvgUPpB/ jTDJSHj+VgYFx2xXb0b6woVqNsxLGmS0dTUDPqBCri1WbENleLiPzblghRHgfHYn 2bYmvwW64e4OhglMUMkOEU58WwlHuKGqjxHbSc0ZG2ys5cwO4Qd6LYAR+JSHyO9x Vk1Jm3IaCo9o9IT1BEAasBe61DSv3+H74zyURdN6ftMvw8DTzww5mxE6odhMRvEg == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrudeltddguddvlecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpeffhffvuffkfhggtggujgesghdtreertddtvdenucfhrhhomheprfgrthhr ihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimheqnecuggftrfgrthhtvg hrnhepheeghfdtfeeuffehkefgffduleffjedthfdvjeektdfhhedvlefgtefgvdettdfh necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhsse hpkhhsrdhimh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 3 Oct 2021 14:59:51 -0400 (EDT) Received: from localhost (xps [10.192.0.12]) by vm-mail.pks.im (OpenSMTPD) with ESMTPSA id 71ed8026 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sun, 3 Oct 2021 18:59:49 +0000 (UTC) Date: Sun, 3 Oct 2021 21:04:09 +0200 From: Patrick Steinhardt To: Glenn Washburn Cc: grub-devel@gnu.org, Daniel Kiper , Denis 'GNUtoo' Carikli , James Bottomley Subject: Re: [PATCH v2 1/4] cryptodisk: Add infrastructure to pass data from cryptomount to cryptodisk modules Message-ID: References: <20210927231403.642857-1-development@efficientek.com> <20210927231403.642857-2-development@efficientek.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="I1Wf6HbnouXG+vmu" Content-Disposition: inline In-Reply-To: <20210927231403.642857-2-development@efficientek.com> Received-SPF: pass client-ip=66.111.4.29; envelope-from=ps@pks.im; helo=out5-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_H2=-0.001, 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, 03 Oct 2021 18:59:58 -0000 --I1Wf6HbnouXG+vmu Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Sep 27, 2021 at 06:14:00PM -0500, Glenn Washburn wrote: > As an example, passing a password as a cryptomount argument is implemente= d. > However, the backends are not implemented, so testing this will return a = not > implemented error. >=20 > Signed-off-by: Glenn Washburn > --- > grub-core/disk/cryptodisk.c | 31 +++++++++++++++++++++---------- > grub-core/disk/geli.c | 6 +++++- > grub-core/disk/luks.c | 7 ++++++- > grub-core/disk/luks2.c | 7 ++++++- > include/grub/cryptodisk.h | 9 ++++++++- > 5 files changed, 46 insertions(+), 14 deletions(-) >=20 > diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c > index 90f82b2d3..ca034859e 100644 > --- a/grub-core/disk/cryptodisk.c > +++ b/grub-core/disk/cryptodisk.c > @@ -41,6 +41,7 @@ static const struct grub_arg_option options[] =3D > /* TRANSLATORS: It's still restricted to cryptodisks only. */ > {"all", 'a', 0, N_("Mount all."), 0, 0}, > {"boot", 'b', 0, N_("Mount all volumes with `boot' flag set."), 0, 0= }, > + {"password", 'p', 0, N_("Password to open volumes."), 0, ARG_TYPE_ST= RING}, > {0, 0, 0, 0, 0, 0} > }; > =20 > @@ -996,7 +997,9 @@ cryptodisk_close (grub_cryptodisk_t dev) > } > =20 > static grub_err_t > -grub_cryptodisk_scan_device_real (const char *name, grub_disk_t source) > +grub_cryptodisk_scan_device_real (const char *name, > + grub_disk_t source, > + grub_cryptomount_args_t cargs) > { > grub_err_t err; > grub_cryptodisk_t dev; > @@ -1015,7 +1018,7 @@ grub_cryptodisk_scan_device_real (const char *name,= grub_disk_t source) > if (!dev) > continue; > =20 > - err =3D cr->recover_key (source, dev); > + err =3D cr->recover_key (source, dev, cargs); > if (err) > { > cryptodisk_close (dev); > @@ -1080,10 +1083,11 @@ grub_cryptodisk_cheat_mount (const char *sourcede= v, const char *cheat) > =20 > static int > grub_cryptodisk_scan_device (const char *name, > - void *data __attribute__ ((unused))) > + void *data) > { > grub_err_t err; > grub_disk_t source; > + grub_cryptomount_args_t cargs =3D data; > =20 > /* Try to open disk. */ > source =3D grub_disk_open (name); > @@ -1093,7 +1097,7 @@ grub_cryptodisk_scan_device (const char *name, > return 0; > } > =20 > - err =3D grub_cryptodisk_scan_device_real (name, source); > + err =3D grub_cryptodisk_scan_device_real (name, source, cargs); > =20 > grub_disk_close (source); > =20 > @@ -1106,12 +1110,19 @@ static grub_err_t > grub_cmd_cryptomount (grub_extcmd_context_t ctxt, int argc, char **args) > { > struct grub_arg_list *state =3D ctxt->state; > + struct grub_cryptomount_args cargs =3D {0}; > =20 > if (argc < 1 && !state[1].set && !state[2].set) > return grub_error (GRUB_ERR_BAD_ARGUMENT, "device name required"); > =20 > + if (state[3].set) /* password */ > + { > + cargs.key_data =3D (grub_uint8_t *) state[3].arg; > + cargs.key_len =3D grub_strlen(state[3].arg); Nit: there's a missing space after the function name here. Other than that, the patch looks good to me. Patrick --I1Wf6HbnouXG+vmu Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEF9hrgiFbCdvenl/rVbJhu7ckPpQFAmFZ/qgACgkQVbJhu7ck PpStkw//UvH0QiBSoo9OA6+rnZ5SxjqyOFSNMeSlTbprYK3SpkxZRA67+Wi4lIs6 LE55A80McEdsdfbUwwFSha35Mj+8UvqKGd907LX3kMjo48seF4ONC69SZ+Vsr6K3 ECij7o/QjaTPuKUw+6StZXQ9OxGFj6aulEN9mUpcfiY2dAbGW1mtEb+PkcrPz5uP zWSFNgBu4q/POyH+HybKAR+CGjdTh1kxW59Xc9kEIyBD+IDyKLycalhnVNvfv8og hUMnMAR4ckstKIO/1OKphcUvD2xj+knIGHHkI3uklgeLhL1DFMODyH3THNLyX/D4 206BtV9kjybkyy/6tpmnTuO9prOgE17wXyFuNfE9B9WcUmXKM2nCnyYMJNDB8GqS uW6pPe0jPT1lbLtexmqf0DS9oauJ7NCiNcfc+CwdCU6bVXs7iV38OmzMUETCJv+r G1CZ7ScTtLFAaNuMAG1HJVHKj1ILLOw2O9o1DYUgZpzvlZePbRj8qpZdNpGYtCgN zWXAoBQn6NU6cpuePqv5zw+y8kBXWZwY1j2jKGc5Q8E4QFdSPB1U+1PcwOMjQops qRUTEatM+iK8Wa5jsnSh8yv/BVGNXFbMhoQHUAfB97UTD2xVrxrPZSVSjLE1QsQg 9GBt56q4L1ROqKX/LA9PDXqmUmi94M4x8Umv6qBtq0W8+SSO0Mo= =r6UO -----END PGP SIGNATURE----- --I1Wf6HbnouXG+vmu--