Commit Graph

15 Commits

Author SHA1 Message Date
Wolfgang Bumiller
ba8dad1190 add common-src/ and move CalendarEvent to it
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-03-01 10:54:15 +01:00
Wolfgang Bumiller
15c39cb258 Revert "move apt to /perl-apt, use PERLMOD_PRODUCT env var"
This reverts commit 9bc3ab23cb.

This is not the way we're going to organize common code.
2022-02-28 12:25:00 +01:00
Dominik Csapak
e75f545a2f pve-rs: add PVE::RS::CalendarEvent
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-01-13 13:58:31 +01:00
Wolfgang Bumiller
89c6d59e60 pve: update to proxmox-tfa 2.0
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-28 17:11:57 +01:00
Fabian Grünbichler
4b4d8fb47b tfa: handle incompatible challenge data
by returning default data, in case the challenge data is not parseable.
this allows a new challenge to be started for the userid in question
without manual cleanup.

currently this can be triggered if an ongoing challenge created with
webauthn-rs 0.2.5 is stored in /run and attempted to be read
post-upgrade.

Reported-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-11-19 14:13:27 +01:00
Dietmar Maurer
544f85bb89 pve-rs: depend on proxmox-openid 0.9, bump version to 0.4.0 2021-11-18 10:13:29 +01:00
Wolfgang Bumiller
205c76068d tfa: generate 'incomaptible' entries
for users with incompatible tfa entries, generate an
'incompatible' entry so they cannot log in via the old api

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-17 12:33:04 +01:00
Wolfgang Bumiller
84417400ed move proxmox_tfa_api module to proxmox-tfa as api feature
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-17 08:43:17 +01:00
Dominik Csapak
dfbbed5d87 pve-rs/tfa: ignore and discard incomplete u2f entries
it can happen that we have leftover entries with non-completed challenges.
since a user cannot continue here in a sensible way, ignore and discard
them

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-12 10:10:38 +01:00
Dominik Csapak
515d6a81d8 pve-rs/tfa: fix off by one trimming
to is the last *valid* character, and ranges end by default with one
less, so extend the range to the actual last character

this fixes an issue that we could not parse old configs with
non-padded base64 values

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-12 10:10:20 +01:00
Wolfgang Bumiller
41ccaa5048 pve: TfaConfig: add_totp_entry, add_yubico_entry
fast path to add those two from the old user.cfg

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-10 09:53:18 +01:00
Wolfgang Bumiller
3e5228dd73 pve: add_totp anda dd_yubico cannot error, drop Result type
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-10 09:53:12 +01:00
Wolfgang Bumiller
2cc9163892 pve: add tfa api
This consists of two parts:

1) A proxmox_tfa_api module which temporarily lives here but
   will become its own crate.

   Most of this is a copy from ' src/config/tfa.rs with some
   compatibility changes:
   * The #[api] macro is guarded by a feature flag, since we
     cannot use it for PVE.
   * The Userid type is replaced by &str since we don't have
     Userid in PVE either.
   * The file locking/reading is removed, this will stay in
     the corresponding product code, and the main entry
     point is now the TfaConfig object.
   * Access to the runtime active challenges in /run is
     provided via a trait implementation since PVE and PBS
     will use different paths for this.
   Essentially anything pbs-specific was removed and the
   code split into a few submodules (one per tfa type
   basically).

2) The tfa module in pve-rs, which contains:
   * The parser for the OLD /etc/pve/priv/tfa.cfg
   * The parser for the NEW /etc/pve/priv/tfa.cfg
   * These create a blessed PVE::RS::TFA instance which:
     - Wraps access to the TfaConfig rust object.
     - Has methods all the TFA API call implementations
       These are copied from PBS' src/api2/access/tfa.rs,
       and pbs specific code removed.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-09 12:02:53 +01:00
Wolfgang Bumiller
9bc3ab23cb move apt to /perl-apt, use PERLMOD_PRODUCT env var
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-09 08:59:43 +01:00
Wolfgang Bumiller
1ae868ad78 import pve-rs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-09 08:56:38 +01:00