diff options
author | Arjan de Vet <freebsd@devet.org> | 2023-08-28 14:54:18 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2023-09-04 14:11:01 +0000 |
commit | 134d36676e94a42bb280a010bf36b31163fccc65 (patch) | |
tree | 8da76cdfa797419c6f0798a4fad996f480714e7b | |
parent | d6fec2dacf80a73dbfd543615350c83fdf810015 (diff) | |
download | src-134d36676e94a42bb280a010bf36b31163fccc65.tar.gz src-134d36676e94a42bb280a010bf36b31163fccc65.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.
Approved by: re (kib)
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.c | 6 |
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)); |