Commit Graph

18 Commits

Author SHA1 Message Date
Carsten Haitzler 32e2825e93 auth - fprint - support any finger for auth instead of just first one 2021-07-07 13:12:27 +01:00
Carsten Haitzler 28a43e0e7c auth - fprint - handle no finger reg and use default right index 2021-07-06 22:54:53 +01:00
Carsten Haitzler 2fbbb52f94 auth - fprint - only start after verify stop done 2021-07-03 00:18:42 +01:00
Carsten Haitzler 1cf5595208 auth and desklock - support auth by fingerprint and show status 2021-07-02 13:26:05 +01:00
Carsten Haitzler 92700403f7 e auth - allow empty password users to auth successfully 2021-02-27 18:18:34 +00:00
Carsten Haitzler f4c49a071f e auth - also use wrapped memory zeroing in polkit and normal auth
fix CID 1425207
2020-04-19 01:17:39 +01:00
Carsten Haitzler a3ae1b0ac2 e auth - use our memclear and fill it out with modern zeroing methods
so memset_s still doesn't get detected (add a check anyway), but there
are other alternatives, so detect and use them if found
(explicit_bzero, explicit_memset) in addition to the generally
"practically works" memset ptr method we had and.. just to be extra
safe add an asm memory barrier to this fallback. also.. mlock the
passwd memory in lokker (if it doesn't work - don't worry - there is
nothing we can do, so we did our best) to avoid this memory gettign
swapped etc.
2020-02-18 10:29:43 +00:00
Carsten Haitzler 5f4697fd7d e - add polkit module to add an auth agent into e
new feature - polkit auth agent support partly in core (need to have
the pam setuid root auth tool respond via dbus) and partly a module
(the agent dbus protocol handling and setup as well as auth gui). this
took me a while even with all the docs to work out how polkit works...
it was really fussy and its data structs are an extra pain in the butt
to craft with eldbus, but i managed it. not everything is supported
but the core basics are there and this can be built on.

right now the gui is really basic, but does the job.
2019-10-08 01:38:54 +01:00
Carsten Haitzler 51cb454993 e auth - move all auth to child process only (e_ckpasswd).
this should fix T6211 ensuring no drivers can cause a segfault at exit
time. this also happens to remove the enlightenment_sys -z option for
openbsd and unifies all the passwd checking into the single
enlightenment_ckpasswd binary util (that has ifdefs for openbsd,
freebsd and linux pam in it).

this simplifies code removing a mess of auth being done in multiple
places, removes special fork vs run 1 exe or a different exe in
different cases making it more maintainable. yes - this requires
enlightenment_ckpasswd to be setuid root, but it already was when it
was built.

@fix
2018-02-26 19:01:46 +09:00
Carsten Haitzler 4f8e3acfcf nvidia driver workaround atexit handlers for pam auth
this works around an apparently atexit() handler in nvidia drivers
that if you fork() a parent and do NOT exec() then the child process
will end up messing with the parent processes access to the nvidia
devices/display/whatever i believe via an atexit() handler because
moving from exit() to _exit() solves the issue. fixes T6197

@fix
2017-10-30 13:11:06 +09:00
Al Poole fddcaa43c4 OpenBSD non-PAM lokker authentication.
Reviewers: ManMower, zmike!

Subscribers: raster, ManMower, cedric

Differential Revision: https://phab.enlightenment.org/D4204
2016-09-08 10:18:10 -04:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Conrad Meyer 90fe5a4d0d e_auth: Add suid helper for lokker own-pw checking on FreeBSD
Summary:
PAM on FreeBSD, unlike on Linux, does not allow users to check their own
password. Instead, we need a suid helper to do it for us. Add such a
helper on FreeBSD.

For now, it is limited to checking users in the local password database
(traditional Unix passwd file). This could and should be extended to use
PAM in a later patch.

Test Plan:
Tested empty pw, wrong pw, correct pw at lock screen; observed correct behavior
in each instance.

Reviewers: q66, zmike

Reviewed By: q66, zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D2355
2015-04-21 13:11:56 +01:00
Tom Hacohen acfdda6c7f E auth: improve clearing out passwords from memory.
Optimising compilers (like gcc/clang with -O1 or above) were optimising
out the memset(). Until link time optimisations are good enough, this
will prevent them from doing so. The best solution would be to use
memset_s() (c11), though it's not readily available yet. This is the
first step towards using memset_s() with a fallback for systems who
don't have it. A better solution, is to put it in Eina, to prevent LTO
completely. This will have to be done after the EFL release.
Even this is not entirely safe though, but at least it protects us from
some memory disclosure issues.

This doesn't solve the fact that we may store a copy of the password in
other places, like the input system. We need to address that too.

Thanks to Matthew Garrett for pointing this out or Twitter.
2015-04-21 10:19:48 +01:00
Carsten Haitzler 3405362b1d e_auth - null out compilert memset opts like lokker 2014-11-03 18:54:24 +09:00
Mike Blumenkrantz 3f3322cb9c null check auth current user get
CID 1155286
2014-03-13 12:06:04 -04:00
ChunEon Park 7474036140 enlightenment - removed warnings. 2014-01-18 19:37:02 +09:00
Mike Blumenkrantz 235c369adf feature: make desklock hookable, break out current desklock into module, move pam stuff to separate file
after this commit, the new-but-invisible module "lokker" (or other custom loaded module) is in charge of creating all graphics for the lock screen, and it will be added to the user's config. failure to load a lockscreen module will just result in a black screen

desklock subsystem now handles all the pre/post lock stuff while the modules themselves are responsible for creating visuals and calling auth functions to determine whether to unlock the screen
2014-01-14 20:28:59 -05:00