Depending on the type of challenge used in the 2FA authentication, the user input doesn't need to be hidden and sometimes it's even undesired (it makes more difficult to enter the text). Allow to VPN plugins to indicate that a secret that is being requested is a 2FA challenge with ECHO mode enabled: - When using auth dialog: accept a new option "ForceEcho" that can be set to TRUE to enable ECHO. - When using the fallback method: recognize the prefix "x-dynamic-challenge-echo". This indicate both that ECHO should be enabled and that this is a 2FA challenge (see previous commit). The correct way to enable echo mode from VPN plugins is doing both things: pass the hint prefixed with "x-dynamic-challenge-echo" and add the option "ForceEcho=true" for the auth dialog. An attempt to support ECHO mode from NM-openvpn was made by passing "IsSecret=false", but it didn't work because nm-secret-agent-simple ignores returned values for which "IsSecret=false". It's not a good idea to start accepting them because we could break other plugins, and anyway the challenge response is actually a secret, so it is better to keep it as such and add this new "ForceEcho" option. This is backwards compatible because existing plugins were not using the tag nor the auth dialog option. Withouth them, the previous behaviour is preserved. On the contrary, plugins that want to use this new feature will need to bump their NM version dependency because old daemons will not handle correctly the prefix tag. Secret agents will need to be updated to check secret->force_echo if they want to support this feature. Until they update, the only drawback is that ECHO mode will be ignored and the user's input will be hidden. Updated nmcli and nmtui to support ECHO mode. |
||
|---|---|---|
| .. | ||
| meson.build | ||
| nm-connection.h | ||
| nm-core-types.h | ||
| nm-dbus-interface.h | ||
| nm-errors.h | ||
| nm-keyfile.h | ||
| nm-setting-6lowpan.h | ||
| nm-setting-8021x.h | ||
| nm-setting-adsl.h | ||
| nm-setting-bluetooth.h | ||
| nm-setting-bond-port.h | ||
| nm-setting-bond.h | ||
| nm-setting-bridge-port.h | ||
| nm-setting-bridge.h | ||
| nm-setting-cdma.h | ||
| nm-setting-connection.h | ||
| nm-setting-dcb.h | ||
| nm-setting-dummy.h | ||
| nm-setting-ethtool.h | ||
| nm-setting-generic.h | ||
| nm-setting-gsm.h | ||
| nm-setting-hostname.h | ||
| nm-setting-hsr.h | ||
| nm-setting-infiniband.h | ||
| nm-setting-ip-config.h | ||
| nm-setting-ip-tunnel.h | ||
| nm-setting-ip4-config.h | ||
| nm-setting-ip6-config.h | ||
| nm-setting-link.h | ||
| nm-setting-loopback.h | ||
| nm-setting-macsec.h | ||
| nm-setting-macvlan.h | ||
| nm-setting-match.h | ||
| nm-setting-olpc-mesh.h | ||
| nm-setting-ovs-bridge.h | ||
| nm-setting-ovs-dpdk.h | ||
| nm-setting-ovs-external-ids.h | ||
| nm-setting-ovs-interface.h | ||
| nm-setting-ovs-other-config.h | ||
| nm-setting-ovs-patch.h | ||
| nm-setting-ovs-port.h | ||
| nm-setting-ppp.h | ||
| nm-setting-pppoe.h | ||
| nm-setting-proxy.h | ||
| nm-setting-serial.h | ||
| nm-setting-sriov.h | ||
| nm-setting-tc-config.h | ||
| nm-setting-team-port.h | ||
| nm-setting-team.h | ||
| nm-setting-tun.h | ||
| nm-setting-user.h | ||
| nm-setting-veth.h | ||
| nm-setting-vlan.h | ||
| nm-setting-vpn.h | ||
| nm-setting-vrf.h | ||
| nm-setting-vxlan.h | ||
| nm-setting-wifi-p2p.h | ||
| nm-setting-wimax.h | ||
| nm-setting-wired.h | ||
| nm-setting-wireguard.h | ||
| nm-setting-wireless-security.h | ||
| nm-setting-wireless.h | ||
| nm-setting-wpan.h | ||
| nm-setting.h | ||
| nm-simple-connection.h | ||
| nm-utils.h | ||
| nm-version-macros.h.in | ||
| nm-version.h | ||
| nm-vpn-dbus-interface.h | ||
| nm-vpn-editor-plugin.h | ||
| nm-vpn-plugin-info.h | ||
| README.md | ||
libnm-core-public
This contains (mostly) header files only, which are also part of
the public API of libnm.
Also, this API is implemented by the static library libnm-core-impl,
which in turn is statically linked into NetworkManager core and libnm.
These headers can be used by anybody who either:
- links (statically) against
libnm-core-impl. - links dynamically against
libnm.
Note that there is also one source file: nm-core-enum-types.c.
This source file really belongs to libnm-core-impl but it is here
because it's a generated file and so far I couldn't figure out how
to generate nm-core-enum-types.h here while moving nm-core-enum-types.c
to libnm-core-impl.
Aside nm-core-enum-types.c, this directory only provides header files.
Users should add this directory (both srcdir and builddir) to the include
search path, because libnm users are used to include these headers unqualified
(like #include "nm-setting.h).