aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArjan de Vet <freebsd@devet.org>2023-08-28 14:54:18 +0000
committerMark Johnston <markj@FreeBSD.org>2023-09-04 12:55:15 +0000
commitb785ac18c7d36cfa84ce8ff8705dc10edd7d2013 (patch)
treeb20b497e9f52392804acb28b880132335cab8dd7
parent87329215f964a3f23643ee27807b72086f159d82 (diff)
downloadsrc-b785ac18c7d36cfa84ce8ff8705dc10edd7d2013.tar.gz
src-b785ac18c7d36cfa84ce8ff8705dc10edd7d2013.zip
geli: Fix geli setkey -J for detached providers
Clear cached_passphrase before generating a new key, otherwise the operation nonsensically tries to reuse the old passphrase. PR: 254966 Pull Request: https://github.com/freebsd/freebsd-src/pull/780 MFC after: 1 week (cherry picked from commit 88d13bf33754bd4b0c5df92eef83d6fadb9b4944)
-rw-r--r--lib/geom/eli/geom_eli.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/geom/eli/geom_eli.c b/lib/geom/eli/geom_eli.c
index 6cbb23230fa5..1efb760830c4 100644
--- a/lib/geom/eli/geom_eli.c
+++ b/lib/geom/eli/geom_eli.c
@@ -1421,6 +1421,12 @@ eli_setkey_detached(struct gctl_req *req, const char *prov,
bcopy(mkey, mkeydst, sizeof(mkey));
explicit_bzero(mkey, sizeof(mkey));
+ /*
+ * The previous eli_genkey() set cached_passphrase, we do not want to
+ * use that for the new passphrase so always prompt for it
+ */
+ explicit_bzero(cached_passphrase, sizeof(cached_passphrase));
+
/* Generate key for Master Key encryption. */
if (eli_genkey_single(req, md, key, true) == NULL) {
explicit_bzero(key, sizeof(key));