Re: Help with getting saved wireless networks passwords with libnm



On Mon, Nov 09, 2020 at 12:41:21AM +0100, Flavio Collocola via networkmanager-list wrote:
Hi all,

I'm trying to port my Windows program WiFi Password Recovery to Linux.
WiFi Password Recovery is a simple tool which scans all wireless networks
stored on the device and then returns their info (such as SSID, Auth
algorithm, *password...*).
To keep portability I'm developing it in C++ using wxWidgets library. In
particular on Linux I'm trying to use libnm to interface the program with
NetworkManager. Before starting the port I decided to write a small C
console program to learn libnm API and NetworkManager basis.
I'm trying to get the passwords of all wireless networks saved on Ubuntu
using libnm but when i call the function *nm_setting_wireless_security_get_psk
*it returns null. It doesn't work with debug dump functions of libnm too. I
think I should do something with NMSecretAgentOld but I don't understand
what exactly and how. I also did not find any example on the Internet. I
slightly modified a C example about using libnm available on internet and
this is my current test code:

Hi,

the remote connection doesn't contain any secrets. You should use
nm_remote_connection_get_secrets() or
nm_remote_connection_get_secrets_async() [1] to get them. The returned
GVariant is a dictionary where each key indicates the setting name and
the value is another dictionary mapping property names to the secret
value; for example:

{'802-11-wireless-security': {'psk': <'my-password'>}}

Note that retrieving secrets for a connection requires Polkit
permissions. If the connection has an owner (connection.permissions
property), the owner needs the "settings.modify.own" permission to get
secrets. Otherwise, the caller needs the "settings.modify.system"
permission. You can check permissions for the current user with
command: "nmcli general permissions".

[1] https://developer.gnome.org/libnm/stable/NMRemoteConnection.html#nm-remote-connection-get-secrets

Beniamino

Attachment: signature.asc
Description: PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]