如何使用 C 程序从 gnome 密钥环文件获取 wifi 密码?

如何使用 C 程序从 gnome 密钥环文件获取 wifi 密码?

我的系统是 Ubuntu 14.04。我知道系统上的所有密码。

我只想编写一个 C 程序,并分析 gnome 密钥环文件/.local/share/keyrings/以获取 wifi 密码。我在GnomeKeyring格式,但我读完之后却感到很困惑。

我可以GnomeKeyring\n\r\0\n在文件头中找到,但找不到“2 字节版本,1 字节加密,1 字节哈希”,

我只找到了一些零。此外,“KeyringFormats”说“零填充使之成为 16 的偶数倍”,但我的“login.keyring”的大小是 661 字节。

我发现了一些信息安全常见问题上面写着“SHA-256 用于散列,AES-128 用于加密秘密。”,但这太简单了。

对我来说使用 AES-128 或 SHA256 没有问题。

可以nm-connection-editor显示 wifi 密码。我只想写一个类似的 C 程序。(没有 GUI)

有人能给我一些关于“KeyringFormats”的建议或详细信息吗?

答案1

尝试一下man -k keyring。它将向您展示部分内容:

gnome-keyring-daemon (1) - keep password and other secrets for users
keyctl_clear (3)     - Clear a keyring
keyctl_get_keyring_ID (3) - Get the ID of a special keyring
keyctl_join_session_keyring (3) - Join a different session keyring
keyctl_link (3)      - Link a key to a keyring keyctl_unlink - Unlink a key from a keyring
keyctl_search (3)    - Search a keyring for a key
keyctl_session_to_parent (3) - Set the parent process's session keyring
keyctl_set_reqkey_keyring (3) - Set the implicit destination keyring
keyctl_unlink (3)    - Link a key to a keyring keyctl_unlink - Unlink a key from a keyring
recursive_key_scan (3) - Apply a function to all keys in a keyring tree
recursive_session_key_scan (3) - Apply a function to all keys in the session keyring tree

阅读这些man页面。

相关内容