Use PAM properly, which allows us to handle other auth types

Previously I was just presenting a static username/password box, and
then running PAM with pre-set credentials.  This works just fine when
PAM is expecting a username and password, but if it's expecting
something like a fingerprint scan or a hardware security token, this
wouldn't entirely work right.  Well, it would "work", but the
username/password dialog would be displayed, and then hitting "Unlock"
would start a different auth process with no visible feedback as to
what's supposed to happen.

This also means I need to switch PAM wrapper crates; the one I was using
before did not allow passing a fixed username to the underlying
pam_start() call, which meant that PAM would try to prompt the user for
it, which is not what we want.
This commit is contained in:
2022-08-14 22:17:58 -07:00
parent 7d05bcb0d5
commit 49394b3e53
4 changed files with 351 additions and 175 deletions

1
debian/control vendored
View File

@ -14,6 +14,7 @@ Build-Depends:
libpam0g-dev,
cargo (>= 0.57),
rustc (>= 1.58),
clang,
help2man
Package: bscreensaver