summaryrefslogtreecommitdiff
path: root/src/home/homework-fido2.c
Commit message (Collapse)AuthorAgeFilesLines
* tree-wide: fix return value handling of base64mem()Lennart Poettering2023-01-111-3/+4
| | | | | | | | | | | This returns an ssize_t, not an int. On populare archs that's the difference between 64bit and 32bit. hence, let's be more careful here, and not silently drop half the bits on the ground by assigning the return value to "int". As noticed by @malikabhi05: https://github.com/systemd/systemd/pull/24754#discussion_r1062903159
* homectl: store FIDO2 up/uv/clientPin fields in user records tooLennart Poettering2021-06-011-1/+32
| | | | | | | | | | | | This catches up homed's FIDO2 support with cryptsetup's: we'll now store the uv/up/clientPin configuration at enrollment in the user record JSON data, and use it when authenticating with it. This also adds explicit "uv" support: we'll only allow it to happen when the client explicity said it's OK. This is then used by clients to print a nice message suggesting "uv" has to take place before retrying allowing it this time. This is modelled after the existing handling for "up".
* FIDO2: ask and record whether user presence was used to lock the volumeLuca Boccassi2021-05-071-2/+1
| | | | | | | | | | In some cases user presence might not be required to get _a_ secret out of a FIDO2 device, but it might be required to the get actual secret that was used to lock the volume. Record whether we used it in the LUKS header JSON metadata. Let the cryptenroll user ask for the feature, but bail out if it is required by the token and the user disabled it. Enabled by default.
* FIDO2: support pin-less LUKS enroll/unlockLuca Boccassi2021-05-071-0/+1
| | | | | | | | | | | | | Closes: https://github.com/systemd/systemd/issues/19246 Some FIDO2 devices allow the user to choose whether to use a PIN or not and will HMAC with a different secret depending on the choice. Some other devices (or some device-specific configuration) can instead make it mandatory. Allow the cryptenroll user to choose whether to use a PIN or not, but fail immediately if it is a hard requirement. Record the choice in the JSON-encoded LUKS header metadata so that the right set of options can be used on unlock.
* homed: split out HMAC-HASH fido2 decode code into src/shared/Lennart Poettering2020-12-171-180/+20
| | | | | That way we can use it later on in systemd-cryptsetup to unlock devices with FIDO2 tokens.
* homed: turn libfido2 into a dlopen() type dependencyLennart Poettering2020-12-171-36/+41
|
* license: LGPL-2.1+ -> LGPL-2.1-or-laterYu Watanabe2020-11-091-1/+1
|
* homed: add support for authenticating with fido2 hmac-secret tokensLennart Poettering2020-07-011-0/+197