Last indexation completed on 2024-11-17 05:23:51 UTC

How kwallet-pam works:
During the pam "auth" (pam_authenticate) stage the module gets the password in plain text. It hashes it against a random salt previously generated by kwallet of random data and keeps it in memory.
When we get to the "session" (pam_open_session) stage the pam module forks and launches kwalletd as the user with file descriptor AND a socket. We send the salted password over the file descriptor after forking and write the socket address to an env variable.
KWalletd recieves the pre-hashed key and then sits there doing nothing. (before the QApplication constructor)
Later after session startup (autostart apps phase 0) a small script passes the newly set environment from the user session to kwalletd over the socket.
kwalletd receives this, sets the environment variables and continues into the normal bootup.
The session env is needed as if we launch pre session various important env vars are not set and kwalletd is a graphical app.

  Name Size Date (UTC) Last indexed Description
  Name Size Date (UTC) Last indexed Description
folder Parent directory - 2024-02-11 02:07:24  
folder cmake/ - 2024-02-11 01:45:32  
folder LICENSES/ - 2024-02-11 01:45:32  
file CMakeLists.txt 2673 bytes 2024-02-11 01:45:32 -  
file pam_darwin.c 1099 bytes 2024-02-11 01:45:32 2024-11-17 04:56:44  
file pam_darwin.h 377 bytes 2024-02-11 01:45:32 2024-11-17 04:56:44  
file pam_kwallet.c 25530 bytes 2024-02-11 01:45:32 2024-11-17 04:56:44  
file pam_kwallet_init 110 bytes 2024-02-11 01:45:32 2024-11-17 04:56:44  
file pam_kwallet_init.desktop.cmake 5463 bytes 2024-02-11 01:45:32 -  
file plasma-kwallet-pam.service.in 315 bytes 2024-02-11 01:45:32 -  
file README.txt 968 bytes 2024-02-11 01:45:32 -