[pve-devel] [PATCH installer 3/3] auto-installer: raise minimum root password length to 8 characters

Christoph Heiss c.heiss at proxmox.com
Mon Oct 7 12:02:21 CEST 2024


On Mon, Oct 07, 2024 at 11:55:19AM GMT, Stefan Hanreich wrote:
> On 10/7/24 11:52, Christoph Heiss wrote:
> > Thanks for the review!
> >
> > On Mon, Oct 07, 2024 at 11:49:02AM GMT, Stefan Hanreich wrote:
> >> On 10/7/24 11:22, Christoph Heiss wrote:
> > [..]
> >>> @@ -309,6 +310,10 @@ fn verify_root_password_settings(answer: &Answer) -> Result<()> {
> >>>      } else if answer.global.root_password.is_none() && answer.global.root_password_hashed.is_none()
> >>>      {
> >>>          bail!("One of `global.root_password` or `global.root_password_hashed` must be set");
> >>> +    } else if answer.global.root_password.is_some()
> >>> +        && answer.global.root_password.as_ref().map(|s| s.len()) < Some(ROOT_PASSWORD_MIN_LENGTH)
> >>> +    {
> >>> +        bail!("`global.root_password` must be at least {ROOT_PASSWORD_MIN_LENGTH} characters long");
> >>>      } else {
> >>>          Ok(())
> >>>      }
> >>
> >> maybe match is better at this point?
> >>
> >> Something like
> >>
> >> match (answer.global.root_password, answer.global.root_password_hashed) {
> >>   [..]
> >>   (Some(password), _) if password.len() < ROOT_PASSWORD_MIN_LENGTH,
> >>   [..]
> >> }
> >>
> >
> > I'll rework it a bit, match definitely seems like the better fit here!
>
> I also thought about suggesting an Enum here like
>
> enum AnswerPassword {
>   Raw(...)
>   Hashed(...)
> }
>
> But that's probably a bit more involved and idk how it would work with
> the answer file format, so hard for me to tell if feasible with the
> current state of things

Sounds like a good idea tho. Shouldn't be that much work, other than
maybe a custom (small) de-/serializer for the answer file and config
output.




More information about the pve-devel mailing list