From 56bbc139bdf118bb43580761d7b90262484924f7 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 1 Mar 2011 15:11:58 -0600 Subject: [PATCH] examples: new example for adding system WPA EAP-TLS wifi connection --- examples/python/Makefile.am | 1 + examples/python/add-system-wifi-connection.py | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100755 examples/python/add-system-wifi-connection.py diff --git a/examples/python/Makefile.am b/examples/python/Makefile.am index dec8b571f7..5650ed8333 100644 --- a/examples/python/Makefile.am +++ b/examples/python/Makefile.am @@ -1,6 +1,7 @@ EXTRA_DIST = \ nm-state.py \ add-system-connection.py \ + add-system-wifi-connection.py vpn.py \ list-connections.py \ show-bssids.py \ diff --git a/examples/python/add-system-wifi-connection.py b/examples/python/add-system-wifi-connection.py new file mode 100755 index 0000000000..366c86e4cd --- /dev/null +++ b/examples/python/add-system-wifi-connection.py @@ -0,0 +1,65 @@ +#!/bin/env python +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Copyright (C) 2010 Red Hat, Inc. +# + +import dbus + +def path_to_value(path): + return dbus.ByteArray("file://" + path + "\0") + +s_con = dbus.Dictionary({ + 'type': '802-11-wireless', + 'uuid': '7371bb78-c1f7-42a3-a9db-5b9566e8ca07', + 'id': 'My Wifi'}) + +ssid = dbus.Array([dbus.Byte('h'), dbus.Byte('o'), dbus.Byte('m'), dbus.Byte('e')], signature=dbus.Signature('y')) +s_wifi = dbus.Dictionary({ + 'ssid': ssid, + 'security': '802-11-wireless-security'}) + +s_wsec = dbus.Dictionary({'key-mgmt': 'wpa-eap'}) + +s_8021x = dbus.Dictionary({ + 'eap': ['tls'], + 'identity': 'Bill Smith', + 'client-cert': path_to_value("/some/place/client.pem"), + 'ca-cert': path_to_value("/some/place/ca-cert.pem"), + 'private-key': path_to_value("/some/place/privkey.pem"), + 'private-key-password': "12345testing"}) + +s_ip4 = dbus.Dictionary({'method': 'auto'}) +s_ip6 = dbus.Dictionary({'method': 'ignore'}) + +con = dbus.Dictionary({ + 'connection': s_con, + '802-11-wireless': s_wifi, + '802-11-wireless-security': s_wsec, + '802-1x': s_8021x, + 'ipv4': s_ip4, + 'ipv6': s_ip6 + }) + + +bus = dbus.SystemBus() + +print con +proxy = bus.get_object("org.freedesktop.NetworkManagerSystemSettings", "/org/freedesktop/NetworkManagerSettings") +settings = dbus.Interface(proxy, "org.freedesktop.NetworkManagerSettings") + +settings.AddConnection(con) +