summary refs log tree commit diff
path: root/libnm-util/tests
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-util/tests')
-rw-r--r--libnm-util/tests/Makefile.am52
-rw-r--r--libnm-util/tests/Makefile.in102
-rw-r--r--libnm-util/tests/certs/Makefile.in48
-rw-r--r--libnm-util/tests/test-crypto.c145
-rw-r--r--libnm-util/tests/test-general.c602
-rw-r--r--libnm-util/tests/test-secrets.c314
-rw-r--r--libnm-util/tests/test-setting-8021x.c356
7 files changed, 379 insertions, 1240 deletions
diff --git a/libnm-util/tests/Makefile.am b/libnm-util/tests/Makefile.am
index 4e2a8a78..a0b4779c 100644
--- a/libnm-util/tests/Makefile.am
+++ b/libnm-util/tests/Makefile.am
@@ -79,49 +79,61 @@ check-local: test-settings-defaults test-crypto test-secrets
 	$(abs_builddir)/test-general
 
 # Private key and CA certificate in the same file (PEM)
-	$(abs_builddir)/test-setting-8021x $(srcdir)/certs/test_key_and_cert.pem "test"
+	$(abs_builddir)/test-setting-8021x \
+		$(top_srcdir)/libnm-util/tests/certs/test_key_and_cert.pem \
+		"test" \
+		$(top_srcdir)/libnm-util/tests/certs/test-key-only-decrypted.der
 
 # Private key by itself (PEM)
-	$(abs_builddir)/test-setting-8021x $(srcdir)/certs/test-key-only.pem "test"
+	$(abs_builddir)/test-setting-8021x \
+		$(top_srcdir)/libnm-util/tests/certs/test-key-only.pem \
+		"test" \
+		$(top_srcdir)/libnm-util/tests/certs/test-key-only-decrypted.der
 
 # Private key and CA certificate in the same file (pkcs12)
-	$(abs_builddir)/test-setting-8021x $(srcdir)/certs/test-cert.p12 "test"
+	$(abs_builddir)/test-setting-8021x \
+		$(top_srcdir)/libnm-util/tests/certs/test-cert.p12 \
+		"test"
 
 # Normal CA certificate
-	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/test_ca_cert.pem
+	$(abs_builddir)/test-crypto --cert \
+		$(top_srcdir)/libnm-util/tests/certs/test_ca_cert.pem
 
 # Another CA certificate
-	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/test2_ca_cert.pem
+	$(abs_builddir)/test-crypto --cert \
+		$(top_srcdir)/libnm-util/tests/certs/test2_ca_cert.pem
 
 # CA certificate without an ending newline
-	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/ca-no-ending-newline.pem
+	$(abs_builddir)/test-crypto --cert \
+		$(top_srcdir)/libnm-util/tests/certs/ca-no-ending-newline.pem
 
 # Combined user cert and private key
-	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/test_key_and_cert.pem
+	$(abs_builddir)/test-crypto --cert \
+		$(top_srcdir)/libnm-util/tests/certs/test_key_and_cert.pem
 
 # Another combined user cert and private key
-	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/test2_key_and_cert.pem
+	$(abs_builddir)/test-crypto --cert \
+		$(top_srcdir)/libnm-util/tests/certs/test2_key_and_cert.pem
 
 # Private key with 8 bytes of tail padding
 	$(abs_builddir)/test-crypto --key \
-		$(srcdir)/certs/test_key_and_cert.pem \
-		"test" \
-		$(srcdir)/certs/test-key-only-decrypted.der
-
-# Private key only (not combined with a cert)
-	$(abs_builddir)/test-crypto --key \
-		$(srcdir)/certs/test-key-only.pem \
-		"test" \
-		$(srcdir)/certs/test-key-only-decrypted.der
+		$(top_srcdir)/libnm-util/tests/certs/test_key_and_cert.pem \
+		"test"
 
 # Private key with 6 bytes of tail padding
-	$(abs_builddir)/test-crypto --key $(srcdir)/certs/test2_key_and_cert.pem "12345testing"
+	$(abs_builddir)/test-crypto --key \
+		$(top_srcdir)/libnm-util/tests/certs/test2_key_and_cert.pem \
+		"12345testing"
 
 # PKCS#12 file
-	$(abs_builddir)/test-crypto --p12 $(srcdir)/certs/test-cert.p12 "test"
+	$(abs_builddir)/test-crypto --p12 \
+		$(top_srcdir)/libnm-util/tests/certs/test-cert.p12 \
+		"test"
 
 # Another PKCS#12 file
-	$(abs_builddir)/test-crypto --p12 $(srcdir)/certs/test2-cert.p12 "12345testing"
+	$(abs_builddir)/test-crypto --p12 \
+		$(top_srcdir)/libnm-util/tests/certs/test2-cert.p12 \
+		"12345testing"
 
 endif
 
diff --git a/libnm-util/tests/Makefile.in b/libnm-util/tests/Makefile.in
index 42c80c65..ab69399a 100644
--- a/libnm-util/tests/Makefile.in
+++ b/libnm-util/tests/Makefile.in
@@ -41,16 +41,11 @@ subdir = libnm-util/tests
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
-	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
-	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-	$(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
-	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libnl-check.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/configure.ac
+	$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/libnl-check.m4 $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -88,7 +83,7 @@ test_settings_defaults_DEPENDENCIES =  \
 	$(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
@@ -161,6 +156,7 @@ am__relativize = \
   done; \
   reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
@@ -169,6 +165,8 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
 CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
@@ -185,7 +183,6 @@ DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCLIENT_VERSION = @DHCLIENT_VERSION@
 DHCPCD_PATH = @DHCPCD_PATH@
 DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
-DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -194,7 +191,6 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LIBS = @GIO_LIBS@
@@ -203,8 +199,8 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GMODULE_CFLAGS = @GMODULE_CFLAGS@
 GMODULE_LIBS = @GMODULE_LIBS@
+GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
 GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
@@ -219,23 +215,13 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
 INTLLIBS = @INTLLIBS@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IPTABLES_PATH = @IPTABLES_PATH@
-IWMX_SDK_CFLAGS = @IWMX_SDK_CFLAGS@
-IWMX_SDK_LIBS = @IWMX_SDK_LIBS@
 KERNEL_FIRMWARE_DIR = @KERNEL_FIRMWARE_DIR@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
@@ -243,8 +229,6 @@ LIBDL = @LIBDL@
 LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
 LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
 LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBNL_CFLAGS = @LIBNL_CFLAGS@
 LIBNL_LIBS = @LIBNL_LIBS@
@@ -253,15 +237,13 @@ LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIPO = @LIPO@
 LN_S = @LN_S@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
+MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
 NM = @NM@
 NMEDIT = @NMEDIT@
@@ -287,9 +269,12 @@ PKGCONFIG_PATH = @PKGCONFIG_PATH@
 PKG_CONFIG = @PKG_CONFIG@
 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
 POLKIT_CFLAGS = @POLKIT_CFLAGS@
 POLKIT_LIBS = @POLKIT_LIBS@
 POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
 PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
 RANLIB = @RANLIB@
 RESOLVCONF_PATH = @RESOLVCONF_PATH@
@@ -304,13 +289,10 @@ UUID_CFLAGS = @UUID_CFLAGS@
 UUID_LIBS = @UUID_LIBS@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -929,49 +911,61 @@ uninstall-am:
 @WITH_TESTS_TRUE@	$(abs_builddir)/test-general
 
 # Private key and CA certificate in the same file (PEM)
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-setting-8021x $(srcdir)/certs/test_key_and_cert.pem "test"
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-setting-8021x \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test_key_and_cert.pem \
+@WITH_TESTS_TRUE@		"test" \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test-key-only-decrypted.der
 
 # Private key by itself (PEM)
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-setting-8021x $(srcdir)/certs/test-key-only.pem "test"
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-setting-8021x \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test-key-only.pem \
+@WITH_TESTS_TRUE@		"test" \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test-key-only-decrypted.der
 
 # Private key and CA certificate in the same file (pkcs12)
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-setting-8021x $(srcdir)/certs/test-cert.p12 "test"
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-setting-8021x \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test-cert.p12 \
+@WITH_TESTS_TRUE@		"test"
 
 # Normal CA certificate
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/test_ca_cert.pem
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test_ca_cert.pem
 
 # Another CA certificate
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/test2_ca_cert.pem
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test2_ca_cert.pem
 
 # CA certificate without an ending newline
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/ca-no-ending-newline.pem
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/ca-no-ending-newline.pem
 
 # Combined user cert and private key
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/test_key_and_cert.pem
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test_key_and_cert.pem
 
 # Another combined user cert and private key
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert $(srcdir)/certs/test2_key_and_cert.pem
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --cert \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test2_key_and_cert.pem
 
 # Private key with 8 bytes of tail padding
 @WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --key \
-@WITH_TESTS_TRUE@		$(srcdir)/certs/test_key_and_cert.pem \
-@WITH_TESTS_TRUE@		"test" \
-@WITH_TESTS_TRUE@		$(srcdir)/certs/test-key-only-decrypted.der
-
-# Private key only (not combined with a cert)
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --key \
-@WITH_TESTS_TRUE@		$(srcdir)/certs/test-key-only.pem \
-@WITH_TESTS_TRUE@		"test" \
-@WITH_TESTS_TRUE@		$(srcdir)/certs/test-key-only-decrypted.der
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test_key_and_cert.pem \
+@WITH_TESTS_TRUE@		"test"
 
 # Private key with 6 bytes of tail padding
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --key $(srcdir)/certs/test2_key_and_cert.pem "12345testing"
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --key \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test2_key_and_cert.pem \
+@WITH_TESTS_TRUE@		"12345testing"
 
 # PKCS#12 file
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --p12 $(srcdir)/certs/test-cert.p12 "test"
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --p12 \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test-cert.p12 \
+@WITH_TESTS_TRUE@		"test"
 
 # Another PKCS#12 file
-@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --p12 $(srcdir)/certs/test2-cert.p12 "12345testing"
+@WITH_TESTS_TRUE@	$(abs_builddir)/test-crypto --p12 \
+@WITH_TESTS_TRUE@		$(top_srcdir)/libnm-util/tests/certs/test2-cert.p12 \
+@WITH_TESTS_TRUE@		"12345testing"
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/libnm-util/tests/certs/Makefile.in b/libnm-util/tests/certs/Makefile.in
index fe5156ce..0821f71d 100644
--- a/libnm-util/tests/certs/Makefile.in
+++ b/libnm-util/tests/certs/Makefile.in
@@ -46,16 +46,11 @@ subdir = libnm-util/tests/certs
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
-	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
-	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-	$(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \
-	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libnl-check.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/configure.ac
+	$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/libnl-check.m4 $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
@@ -72,6 +67,7 @@ SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
 ALL_LINGUAS = @ALL_LINGUAS@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
@@ -80,6 +76,8 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
 CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
@@ -96,7 +94,6 @@ DHCLIENT_PATH = @DHCLIENT_PATH@
 DHCLIENT_VERSION = @DHCLIENT_VERSION@
 DHCPCD_PATH = @DHCPCD_PATH@
 DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
-DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -105,7 +102,6 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LIBS = @GIO_LIBS@
@@ -114,8 +110,8 @@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GLIB_LIBS = @GLIB_LIBS@
 GMODULE_CFLAGS = @GMODULE_CFLAGS@
 GMODULE_LIBS = @GMODULE_LIBS@
+GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
 GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
 GNUTLS_LIBS = @GNUTLS_LIBS@
 GREP = @GREP@
@@ -130,23 +126,13 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
 INTLLIBS = @INTLLIBS@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IPTABLES_PATH = @IPTABLES_PATH@
-IWMX_SDK_CFLAGS = @IWMX_SDK_CFLAGS@
-IWMX_SDK_LIBS = @IWMX_SDK_LIBS@
 KERNEL_FIRMWARE_DIR = @KERNEL_FIRMWARE_DIR@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
@@ -154,8 +140,6 @@ LIBDL = @LIBDL@
 LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
 LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
 LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBNL_CFLAGS = @LIBNL_CFLAGS@
 LIBNL_LIBS = @LIBNL_LIBS@
@@ -164,15 +148,13 @@ LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIPO = @LIPO@
 LN_S = @LN_S@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
+MSGFMT_OPTS = @MSGFMT_OPTS@
 MSGMERGE = @MSGMERGE@
 NM = @NM@
 NMEDIT = @NMEDIT@
@@ -198,9 +180,12 @@ PKGCONFIG_PATH = @PKGCONFIG_PATH@
 PKG_CONFIG = @PKG_CONFIG@
 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
 POLKIT_CFLAGS = @POLKIT_CFLAGS@
 POLKIT_LIBS = @POLKIT_LIBS@
 POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
 PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
 RANLIB = @RANLIB@
 RESOLVCONF_PATH = @RESOLVCONF_PATH@
@@ -215,13 +200,10 @@ UUID_CFLAGS = @UUID_CFLAGS@
 UUID_LIBS = @UUID_LIBS@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
diff --git a/libnm-util/tests/test-crypto.c b/libnm-util/tests/test-crypto.c
index 6cfb6ac2..a5466bc8 100644
--- a/libnm-util/tests/test-crypto.c
+++ b/libnm-util/tests/test-crypto.c
@@ -18,7 +18,7 @@
  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301 USA.
  *
- * (C) Copyright 2007 - 2011 Red Hat, Inc.
+ * (C) Copyright 2007 - 2009 Red Hat, Inc.
  */
 
 #include <glib.h>
@@ -113,46 +113,28 @@ test_load_cert (const char *path, const char *desc)
 	g_byte_array_free (array, TRUE);
 }
 
-static GByteArray *
-file_to_byte_array (const char *filename)
-{
-	char *contents;
-	GByteArray *array = NULL;
-	gsize length = 0;
-
-	if (g_file_get_contents (filename, &contents, &length, NULL)) {
-		array = g_byte_array_sized_new (length);
-		if (array) {
-			g_byte_array_append (array, (guint8 *) contents, length);
-			g_assert (array->len == length);
-		}
-		g_free (contents);
-	}
-	return array;
-}
-
 static void
 test_load_private_key (const char *path,
                        const char *password,
-                       const char *decrypted_path,
                        gboolean expect_fail,
                        const char *desc)
 {
 	NMCryptoKeyType key_type = NM_CRYPTO_KEY_TYPE_UNKNOWN;
-	GByteArray *array, *decrypted;
+	NMCryptoFileFormat format = NM_CRYPTO_FILE_FORMAT_UNKNOWN;
+	GByteArray *array;
 	GError *error = NULL;
 
-	array = crypto_decrypt_private_key (path, password, &key_type, &error);
+	array = crypto_get_private_key (path, password, &key_type, &format, &error);
 	if (expect_fail) {
 		ASSERT (array == NULL, desc,
 		        "unexpected success reading private key file '%s' with "
 		        "invalid password",
 		        path);
 
-		ASSERT (key_type != NM_CRYPTO_KEY_TYPE_UNKNOWN, desc,
-		        "unexpected failure determining private key file '%s' "
-		        "type with invalid password (expected %d, got %d)",
-		        path, NM_CRYPTO_KEY_TYPE_UNKNOWN, key_type);
+		ASSERT (format == NM_CRYPTO_FILE_FORMAT_UNKNOWN, desc,
+		        "unexpected success determining private key file '%s' "
+		        "format with invalid password (expected %d, got %d)",
+		        path, NM_CRYPTO_FILE_FORMAT_UNKNOWN, format);
 		return;
 	}
 
@@ -160,28 +142,13 @@ test_load_private_key (const char *path,
 	        "couldn't read private key file '%s': %d %s",
 	        path, error->code, error->message);
 
+	ASSERT (format == NM_CRYPTO_FILE_FORMAT_RAW_KEY, desc,
+	        "%s: unexpected private key file format (expected %d, got %d)",
+	        path, NM_CRYPTO_FILE_FORMAT_RAW_KEY, format);
+
 	ASSERT (key_type == NM_CRYPTO_KEY_TYPE_RSA, desc,
 	        "%s: unexpected private key type (expected %d, got %d)",
-	        path, NM_CRYPTO_KEY_TYPE_RSA, key_type);
-
-	if (decrypted_path) {
-		/* Compare the crypto decrypted key against a known-good decryption */
-		decrypted = file_to_byte_array (decrypted_path);
-		ASSERT (decrypted != NULL, desc,
-		        "couldn't read decrypted private key file '%s': %d %s",
-		        decrypted_path, error->code, error->message);
-
-		ASSERT (decrypted->len > 0, desc, "decrypted key file invalid (size 0)");
-
-		ASSERT (decrypted->len == array->len,
-			    desc, "decrypted key file (%d) and decrypted key data (%d) lengths don't match",
-			    decrypted->len, array->len);
-
-		ASSERT (memcmp (decrypted->data, array->data, array->len) == 0,
-			    desc, "decrypted key file and decrypted key data don't match");
-
-		g_byte_array_free (decrypted, TRUE);
-	}
+	        path, NM_CRYPTO_KEY_TYPE_RSA, format);
 
 	g_byte_array_free (array, TRUE);
 }
@@ -192,35 +159,46 @@ test_load_pkcs12 (const char *path,
                   gboolean expect_fail,
                   const char *desc)
 {
+	NMCryptoKeyType key_type = NM_CRYPTO_KEY_TYPE_UNKNOWN;
 	NMCryptoFileFormat format = NM_CRYPTO_FILE_FORMAT_UNKNOWN;
+	GByteArray *array;
 	GError *error = NULL;
 
-	format = crypto_verify_private_key (path, password, &error);
+	array = crypto_get_private_key (path, password, &key_type, &format, &error);
 	if (expect_fail) {
-		ASSERT (format == NM_CRYPTO_FILE_FORMAT_UNKNOWN, desc,
+		ASSERT (array == NULL, desc,
 		        "unexpected success reading PKCS#12 private key file "
 		        "'%s' with invalid password",
 		        path);
-	} else {
-		ASSERT (format == NM_CRYPTO_FILE_FORMAT_PKCS12, desc,
-			    "%s: unexpected PKCS#12 private key file format (expected %d, got "
-			    "%d): %d %s",
-			    path, NM_CRYPTO_FILE_FORMAT_PKCS12, format, error->code, error->message);
+
+		/* PKCS#12 file format can be determined even if the password
+		 * is wrong; check that.
+		 */
+		ASSERT (format == NM_CRYPTO_FILE_FORMAT_UNKNOWN, desc,
+		        "unexpected success determining PKCS#12 private key "
+		        "'%s' file format with invalid password (expected %d, "
+		        "got %d)",
+		        path, NM_CRYPTO_FILE_FORMAT_UNKNOWN, format);
+		ASSERT (key_type == NM_CRYPTO_KEY_TYPE_UNKNOWN, desc,
+		        "unexpected success determining PKCS#12 private key "
+		        "'%s' type with invalid password (expected %d, got %d)",
+		        path, NM_CRYPTO_KEY_TYPE_UNKNOWN, key_type);
+		return;
 	}
-}
 
-static void
-test_load_pkcs12_no_password (const char *path, const char *desc)
-{
-	NMCryptoFileFormat format = NM_CRYPTO_FILE_FORMAT_UNKNOWN;
-	GError *error = NULL;
+	ASSERT (array != NULL, desc,
+	        "couldn't read PKCS#12 private key file '%s': %d %s",
+	        path, error->code, error->message);
 
-	/* We should still get a valid returned crypto file format */
-	format = crypto_verify_private_key (path, NULL, &error);
 	ASSERT (format == NM_CRYPTO_FILE_FORMAT_PKCS12, desc,
-		    "%s: unexpected PKCS#12 private key file format (expected %d, got "
-		    "%d): %d %s",
-		    path, NM_CRYPTO_FILE_FORMAT_PKCS12, format, error->code, error->message);
+	        "%s: unexpected PKCS#12 private key file format (expected %d, got %d)",
+	        path, NM_CRYPTO_FILE_FORMAT_RAW_KEY, format);
+
+	ASSERT (key_type == NM_CRYPTO_KEY_TYPE_ENCRYPTED, desc,
+	        "%s: unexpected PKCS#12 private key type (expected %d, got %d)",
+	        path, NM_CRYPTO_KEY_TYPE_ENCRYPTED, format);
+
+	g_byte_array_free (array, TRUE);
 }
 
 static void
@@ -233,9 +211,10 @@ test_is_pkcs12 (const char *path, gboolean expect_fail, const char *desc)
 		ASSERT (is_pkcs12 == FALSE, desc,
 		        "unexpected success reading non-PKCS#12 file '%s'",
 		        path);
-	} else {
-		ASSERT (is_pkcs12 == TRUE, desc, "couldn't read PKCS#12 file '%s'", path);
+		return;
 	}
+
+	ASSERT (is_pkcs12 == TRUE, desc, "couldn't read PKCS#12 file '%s'", path);
 }
 
 static void
@@ -244,17 +223,23 @@ test_encrypt_private_key (const char *path,
                           const char *desc)
 {
 	NMCryptoKeyType key_type = NM_CRYPTO_KEY_TYPE_UNKNOWN;
+	NMCryptoFileFormat format = NM_CRYPTO_FILE_FORMAT_UNKNOWN;
 	GByteArray *array, *encrypted, *re_decrypted;
 	GError *error = NULL;
 
-	array = crypto_decrypt_private_key (path, password, &key_type, &error);
+	array = crypto_get_private_key (path, password, &key_type, &format, &error);
+
 	ASSERT (array != NULL, desc,
 	        "couldn't read private key file '%s': %d %s",
 	        path, error->code, error->message);
 
+	ASSERT (format == NM_CRYPTO_FILE_FORMAT_RAW_KEY, desc,
+	        "%s: unexpected private key file format (expected %d, got %d)",
+	        path, NM_CRYPTO_FILE_FORMAT_RAW_KEY, format);
+
 	ASSERT (key_type == NM_CRYPTO_KEY_TYPE_RSA, desc,
 	        "%s: unexpected private key type (expected %d, got %d)",
-	        path, NM_CRYPTO_KEY_TYPE_RSA, key_type);
+	        path, NM_CRYPTO_KEY_TYPE_RSA, format);
 
 	/* Now re-encrypt the private key */
 	encrypted = nm_utils_rsa_key_encrypt (array, password, NULL, &error);
@@ -264,14 +249,20 @@ test_encrypt_private_key (const char *path,
 
 	/* Then re-decrypt the private key */
 	key_type = NM_CRYPTO_KEY_TYPE_UNKNOWN;
-	re_decrypted = crypto_decrypt_private_key_data (encrypted, password, &key_type, &error);
+	format = NM_CRYPTO_FILE_FORMAT_UNKNOWN;
+	re_decrypted = crypto_get_private_key_data (encrypted, password, &key_type, &format, &error);
+
 	ASSERT (re_decrypted != NULL, desc,
 	        "couldn't read private key file '%s': %d %s",
 	        path, error->code, error->message);
 
+	ASSERT (format == NM_CRYPTO_FILE_FORMAT_RAW_KEY, desc,
+	        "%s: unexpected private key file format (expected %d, got %d)",
+	        path, NM_CRYPTO_FILE_FORMAT_RAW_KEY, format);
+
 	ASSERT (key_type == NM_CRYPTO_KEY_TYPE_RSA, desc,
 	        "%s: unexpected private key type (expected %d, got %d)",
-	        path, NM_CRYPTO_KEY_TYPE_RSA, key_type);
+	        path, NM_CRYPTO_KEY_TYPE_RSA, format);
 
 	/* Compare the original decrypted key with the re-decrypted key */
 	ASSERT (array->len == re_decrypted->len, desc,
@@ -301,21 +292,17 @@ int main (int argc, char **argv)
 	if (!strcmp (argv[1], "--cert"))
 		test_load_cert (argv[2], "cert");
 	else if (!strcmp (argv[1], "--key")) {
-		const char *decrypted_path = (argc == 5) ? argv[4] : NULL;
-
-		ASSERT (argc == 4 || argc == 5, "test-crypto",
-		        "wrong number of arguments (--key <key file> <password> [<decrypted key file>])");
+		ASSERT (argc == 4, "test-crypto",
+		        "wrong number of arguments (--key <key file> <password>)");
 
-		test_is_pkcs12 (argv[2], TRUE, "not-pkcs12");
-		test_load_private_key (argv[2], argv[3], decrypted_path, FALSE, "private-key");
-		test_load_private_key (argv[2], "blahblahblah", NULL, TRUE, "private-key-bad-password");
-		test_load_private_key (argv[2], NULL, NULL, TRUE, "private-key-no-password");
+		test_load_private_key (argv[2], argv[3], FALSE, "private-key");
+		test_load_private_key (argv[2], "blahblahblah", TRUE, "private-key-bad-password");
 		test_encrypt_private_key (argv[2], argv[3], "private-key-rencrypt");
+		test_is_pkcs12 (argv[2], TRUE, "is-pkcs12-not-pkcs12");
 	} else if (!strcmp (argv[1], "--p12")) {
 		test_is_pkcs12 (argv[2], FALSE, "is-pkcs12");
 		test_load_pkcs12 (argv[2], argv[3], FALSE, "pkcs12-private-key");
 		test_load_pkcs12 (argv[2], "blahblahblah", TRUE, "pkcs12-private-key-bad-password");
-		test_load_pkcs12_no_password (argv[2], "pkcs12-private-key-no-password");
 	} else {
 		ASSERT (argc > 2, "test-crypto", "unknown test type (not --cert, --key, or --p12)");
 	}
diff --git a/libnm-util/tests/test-general.c b/libnm-util/tests/test-general.c
index 1ce80622..c7421faf 100644
--- a/libnm-util/tests/test-general.c
+++ b/libnm-util/tests/test-general.c
@@ -15,7 +15,7 @@
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
- * Copyright (C) 2008 - 2011 Red Hat, Inc.
+ * Copyright (C) 2008 - 2010 Red Hat, Inc.
  *
  */
 
@@ -29,13 +29,10 @@
 #include "nm-setting-connection.h"
 #include "nm-setting-vpn.h"
 #include "nm-setting-gsm.h"
-#include "nm-setting-cdma.h"
 #include "nm-setting-wired.h"
-#include "nm-setting-wireless-security.h"
 #include "nm-setting-ip6-config.h"
 #include "nm-setting-ip4-config.h"
 #include "nm-setting-pppoe.h"
-#include "nm-setting-serial.h"
 #include "nm-dbus-glib-types.h"
 
 static void
@@ -136,65 +133,6 @@ test_setting_vpn_items (void)
 	g_object_unref (s_vpn);
 }
 
-static void
-test_setting_vpn_update_secrets (void)
-{
-	NMConnection *connection;
-	NMSettingVPN *s_vpn;
-	GHashTable *settings, *vpn, *secrets;
-	GValue val = { 0 };
-	gboolean success;
-	GError *error = NULL;
-	const char *tmp;
-	const char *key1 = "foobar";
-	const char *key2 = "blahblah";
-	const char *val1 = "value1";
-	const char *val2 = "value2";
-
-	connection = nm_connection_new ();
-	ASSERT (connection != NULL,
-	        "vpn-update-secrets",
-	        "error creating connection");
-
-	s_vpn = (NMSettingVPN *) nm_setting_vpn_new ();
-	ASSERT (s_vpn != NULL,
-	        "vpn-update-secrets",
-	        "error creating vpn setting");
-	nm_connection_add_setting (connection, NM_SETTING (s_vpn));
-
-	settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) g_hash_table_destroy);
-	vpn = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) g_value_unset);
-	g_hash_table_insert (settings, NM_SETTING_VPN_SETTING_NAME, vpn);
-
-	secrets = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, NULL);
-	g_value_init (&val, DBUS_TYPE_G_MAP_OF_STRING);
-	g_value_take_boxed (&val, secrets);
-	g_hash_table_insert (vpn, NM_SETTING_VPN_SECRETS, &val);
-
-	/* Add some secrets */
-	g_hash_table_insert (secrets, (char *) key1, (char *) val1);
-	g_hash_table_insert (secrets, (char *) key2, (char *) val2);
-
-	success = nm_connection_update_secrets (connection, NM_SETTING_VPN_SETTING_NAME, settings, &error);
-	ASSERT (success == TRUE,
-	        "vpn-update-secrets", "failed to update VPN secrets: %s", error->message);
-
-	/* Read the secrets back out */
-	tmp = nm_setting_vpn_get_secret (s_vpn, key1);
-	ASSERT (tmp != NULL,
-	        "vpn-update-secrets", "unexpected failure getting key #1");
-	ASSERT (strcmp (tmp, val1) == 0,
-	        "vpn-update-secrets", "unexpected key #1 value");
-
-	tmp = nm_setting_vpn_get_secret (s_vpn, key2);
-	ASSERT (tmp != NULL,
-	        "vpn-update-secrets", "unexpected failure getting key #2");
-	ASSERT (strcmp (tmp, val2) == 0,
-	        "vpn-update-secrets", "unexpected key #2 value");
-
-	g_object_unref (connection);
-}
-
 #define OLD_DBUS_TYPE_G_IP6_ADDRESS (dbus_g_type_get_struct ("GValueArray", DBUS_TYPE_G_UCHAR_ARRAY, G_TYPE_UINT, G_TYPE_INVALID))
 #define OLD_DBUS_TYPE_G_ARRAY_OF_IP6_ADDRESS (dbus_g_type_get_collection ("GPtrArray", OLD_DBUS_TYPE_G_IP6_ADDRESS))
 
@@ -354,319 +292,6 @@ test_setting_gsm_apn_bad_chars (void)
 	        "gsm-apn-bad-chars", "unexpectedly valid GSM setting");
 }
 
-static NMSettingWirelessSecurity *
-make_test_wsec_setting (const char *detail)
-{
-	NMSettingWirelessSecurity *s_wsec;
-
-	s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
-	ASSERT (s_wsec != NULL, detail, "error creating setting");
-
-	g_object_set (s_wsec,
-	              NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk",
-	              NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, "foobarbaz",
-	              NM_SETTING_WIRELESS_SECURITY_PSK, "random psk",
-	              NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, "aaaaaaaaaa",
-	              NULL);
-
-	return s_wsec;
-}
-
-static void
-test_setting_to_hash_all (void)
-{
-	NMSettingWirelessSecurity *s_wsec;
-	GHashTable *hash;
-
-	s_wsec = make_test_wsec_setting ("setting-to-hash-all");
-
-	hash = nm_setting_to_hash (NM_SETTING (s_wsec), NM_SETTING_HASH_FLAG_ALL);
-
-	/* Make sure all keys are there */
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT),
-	        "setting-to-hash-all", "unexpectedly missing " NM_SETTING_WIRELESS_SECURITY_KEY_MGMT);
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME),
-	        "setting-to-hash-all", "unexpectedly missing " NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME);
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_PSK),
-	        "setting-to-hash-all", "unexpectedly missing " NM_SETTING_WIRELESS_SECURITY_PSK);
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0),
-	        "setting-to-hash-all", "unexpectedly missing " NM_SETTING_WIRELESS_SECURITY_WEP_KEY0);
-
-	g_hash_table_destroy (hash);
-	g_object_unref (s_wsec);
-}
-
-static void
-test_setting_to_hash_no_secrets (void)
-{
-	NMSettingWirelessSecurity *s_wsec;
-	GHashTable *hash;
-
-	s_wsec = make_test_wsec_setting ("setting-to-hash-no-secrets");
-
-	hash = nm_setting_to_hash (NM_SETTING (s_wsec), NM_SETTING_HASH_FLAG_NO_SECRETS);
-
-	/* Make sure non-secret keys are there */
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT),
-	        "setting-to-hash-no-secrets", "unexpectedly missing " NM_SETTING_WIRELESS_SECURITY_KEY_MGMT);
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME),
-	        "setting-to-hash-no-secrets", "unexpectedly missing " NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME);
-
-	/* Make sure secrets are not there */
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_PSK) == NULL,
-	        "setting-to-hash-no-secrets", "unexpectedly present " NM_SETTING_WIRELESS_SECURITY_PSK);
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0) == NULL,
-	        "setting-to-hash-no-secrets", "unexpectedly present " NM_SETTING_WIRELESS_SECURITY_WEP_KEY0);
-
-	g_hash_table_destroy (hash);
-	g_object_unref (s_wsec);
-}
-
-static void
-test_setting_to_hash_only_secrets (void)
-{
-	NMSettingWirelessSecurity *s_wsec;
-	GHashTable *hash;
-
-	s_wsec = make_test_wsec_setting ("setting-to-hash-only-secrets");
-
-	hash = nm_setting_to_hash (NM_SETTING (s_wsec), NM_SETTING_HASH_FLAG_ONLY_SECRETS);
-
-	/* Make sure non-secret keys are there */
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT) == NULL,
-	        "setting-to-hash-only-secrets", "unexpectedly present " NM_SETTING_WIRELESS_SECURITY_KEY_MGMT);
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME) == NULL,
-	        "setting-to-hash-only-secrets", "unexpectedly present " NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME);
-
-	/* Make sure secrets are not there */
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_PSK),
-	        "setting-to-hash-only-secrets", "unexpectedly missing " NM_SETTING_WIRELESS_SECURITY_PSK);
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0),
-	        "setting-to-hash-only-secrets", "unexpectedly missing " NM_SETTING_WIRELESS_SECURITY_WEP_KEY0);
-
-	g_hash_table_destroy (hash);
-	g_object_unref (s_wsec);
-}
-
-static void
-test_connection_to_hash_setting_name (void)
-{
-	NMConnection *connection;
-	NMSettingWirelessSecurity *s_wsec;
-	GHashTable *hash;
-
-	connection = nm_connection_new ();
-	s_wsec = make_test_wsec_setting ("connection-to-hash-setting-name");
-	nm_connection_add_setting (connection, NM_SETTING (s_wsec));
-
-	hash = nm_connection_to_hash (connection, NM_SETTING_HASH_FLAG_ALL);
-
-	/* Make sure the keys of the first level hash are setting names, not
-	 * the GType name of the setting objects.
-	 */
-	ASSERT (g_hash_table_lookup (hash, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) != NULL,
-	        "connection-to-hash-setting-name", "unexpectedly missing " NM_SETTING_WIRELESS_SECURITY_SETTING_NAME);
-
-	g_hash_table_destroy (hash);
-	g_object_unref (connection);
-}
-
-static void
-check_permission (NMSettingConnection *s_con,
-                  guint32 idx,
-                  const char *expected_uname,
-                  const char *tag)
-{
-	gboolean success;
-	const char *ptype = NULL, *pitem = NULL, *detail = NULL;
-
-	success = nm_setting_connection_get_permission (s_con, 0, &ptype, &pitem, &detail);
-	ASSERT (success == TRUE, tag, "unexpected failure getting added permission");
-
-	/* Permission type */
-	ASSERT (ptype != NULL, tag, "unexpected failure getting permission type");
-	ASSERT (strcmp (ptype, "user") == 0, tag, "retrieved unexpected permission type");
-
-	/* Permission item */
-	ASSERT (pitem != NULL, tag, "unexpected failure getting permission item");
-	ASSERT (strcmp (pitem, expected_uname) == 0, tag, "retrieved unexpected permission item");
-
-	ASSERT (detail == NULL, tag, "unexpected success getting permission detail");
-}
-
-#define TEST_UNAME "asdfasfasdf"
-
-static void
-test_setting_connection_permissions_helpers (void)
-{
-	NMSettingConnection *s_con;
-	gboolean success;
-	char buf[9] = { 0x61, 0x62, 0x63, 0xff, 0xfe, 0xfd, 0x23, 0x01, 0x00 };
-	GSList *list = NULL;
-	const char *expected_perm = "user:" TEST_UNAME ":";
-
-	s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ());
-
-	/* Ensure a bad [type] is rejected */
-	success = nm_setting_connection_add_permission (s_con, "foobar", "blah", NULL);
-	ASSERT (success == FALSE,
-	        "setting-connection-permissions-helpers", "unexpected success adding bad permission type #1");
-
-	/* Ensure a bad [type] is rejected */
-	success = nm_setting_connection_add_permission (s_con, NULL, "blah", NULL);
-	ASSERT (success == FALSE,
-	        "setting-connection-permissions-helpers", "unexpected success adding bad permission type #2");
-
-	/* Ensure a bad [item] is rejected */
-	success = nm_setting_connection_add_permission (s_con, "user", NULL, NULL);
-	ASSERT (success == FALSE,
-	        "setting-connection-permissions-helpers", "unexpected success adding bad permission item #1");
-
-	/* Ensure a bad [item] is rejected */
-	success = nm_setting_connection_add_permission (s_con, "user", "", NULL);
-	ASSERT (success == FALSE,
-	        "setting-connection-permissions-helpers", "unexpected success adding bad permission item #2");
-
-	/* Ensure an [item] with ':' is rejected */
-	success = nm_setting_connection_add_permission (s_con, "user", "ad:asdf", NULL);
-	ASSERT (success == FALSE,
-	        "setting-connection-permissions-helpers", "unexpected success adding bad permission item #3");
-
-	/* Ensure a non-UTF-8 [item] is rejected */
-	success = nm_setting_connection_add_permission (s_con, "user", buf, NULL);
-	ASSERT (success == FALSE,
-	        "setting-connection-permissions-helpers", "unexpected success adding bad permission item #4");
-
-	/* Ensure a non-NULL [detail] is rejected */
-	success = nm_setting_connection_add_permission (s_con, "user", "dafasdf", "asdf");
-	ASSERT (success == FALSE,
-	        "setting-connection-permissions-helpers", "unexpected success adding bad detail");
-
-	/* Ensure a valid call results in success */
-	success = nm_setting_connection_add_permission (s_con, "user", TEST_UNAME, NULL);
-	ASSERT (success == TRUE,
-	        "setting-connection-permissions-helpers", "unexpected failure adding valid user permisson");
-
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 1,
-	        "setting-connection-permissions-helpers", "unexpected failure getting number of permissions");
-
-	check_permission (s_con, 0, TEST_UNAME, "setting-connection-permissions-helpers");
-
-	/* Check the actual GObject property just to be paranoid */
-	g_object_get (G_OBJECT (s_con), NM_SETTING_CONNECTION_PERMISSIONS, &list, NULL);
-	ASSERT (list != NULL,
-	        "setting-connection-permissions-helpers", "unexpected failure getting permissions list");
-	ASSERT (g_slist_length (list) == 1,
-	        "setting-connection-permissions-helpers", "unexpected failure getting number of permissions in list");
-	ASSERT (strcmp (list->data, expected_perm) == 0,
-	        "setting-connection-permissions-helpers", "unexpected permission property data");
-
-	/* Now remove that permission and ensure we have 0 permissions */
-	nm_setting_connection_remove_permission (s_con, 0);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-helpers", "unexpected failure removing permission");
-
-	g_object_unref (s_con);
-}
-
-static void
-add_permission_property (NMSettingConnection *s_con,
-                         const char *ptype,
-                         const char *pitem,
-                         int pitem_len,
-                         const char *detail)
-{
-	GString *str;
-	GSList *list = NULL;
-
-	str = g_string_sized_new (50);
-	if (ptype)
-		g_string_append (str, ptype);
-	g_string_append_c (str, ':');
-
-	if (pitem) {
-		if (pitem_len >= 0)
-			g_string_append_len (str, pitem, pitem_len);
-		else
-			g_string_append (str, pitem);
-	}
-
-	g_string_append_c (str, ':');
-
-	if (detail)
-		g_string_append (str, detail);
-
-	list = g_slist_append (list, str->str);
-	g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_PERMISSIONS, list, NULL);
-
-	g_string_free (str, TRUE);
-	g_slist_free (list);
-}
-
-static void
-test_setting_connection_permissions_property (void)
-{
-	NMSettingConnection *s_con;
-	gboolean success;
-	char buf[9] = { 0x61, 0x62, 0x63, 0xff, 0xfe, 0xfd, 0x23, 0x01, 0x00 };
-
-	s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ());
-
-	/* Ensure a bad [type] is rejected */
-	add_permission_property (s_con, "foobar", "blah", -1, NULL);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-property", "unexpected success adding bad permission type #1");
-
-	/* Ensure a bad [type] is rejected */
-	add_permission_property (s_con, NULL, "blah", -1, NULL);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-property", "unexpected success adding bad permission type #2");
-
-	/* Ensure a bad [item] is rejected */
-	add_permission_property (s_con, "user", NULL, -1, NULL);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-property", "unexpected success adding bad permission item #1");
-
-	/* Ensure a bad [item] is rejected */
-	add_permission_property (s_con, "user", "", -1, NULL);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-property", "unexpected success adding bad permission item #2");
-
-	/* Ensure an [item] with ':' in the middle is rejected */
-	add_permission_property (s_con, "user", "ad:asdf", -1, NULL);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-property", "unexpected success adding bad permission item #3");
-
-	/* Ensure an [item] with ':' at the end is rejected */
-	add_permission_property (s_con, "user", "adasdfaf:", -1, NULL);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-property", "unexpected success adding bad permission item #4");
-
-	/* Ensure a non-UTF-8 [item] is rejected */
-	add_permission_property (s_con, "user", buf, (int) sizeof (buf), NULL);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-property", "unexpected success adding bad permission item #5");
-
-	/* Ensure a non-NULL [detail] is rejected */
-	add_permission_property (s_con, "user", "dafasdf", -1, "asdf");
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-property", "unexpected success adding bad detail");
-
-	/* Ensure a valid call results in success */
-	success = nm_setting_connection_add_permission (s_con, "user", TEST_UNAME, NULL);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 1,
-	        "setting-connection-permissions-property", "unexpected failure adding valid user permisson");
-
-	check_permission (s_con, 0, TEST_UNAME, "setting-connection-permissions-property");
-
-	/* Now remove that permission and ensure we have 0 permissions */
-	nm_setting_connection_remove_permission (s_con, 0);
-	ASSERT (nm_setting_connection_get_num_permissions (s_con) == 0,
-	        "setting-connection-permissions-property", "unexpected failure removing permission");
-
-	g_object_unref (s_con);
-}
-
 static NMConnection *
 new_test_connection (void)
 {
@@ -760,7 +385,6 @@ test_connection_diff_a_only (void)
 			{ NM_SETTING_CONNECTION_TIMESTAMP,   NM_SETTING_DIFF_RESULT_IN_A },
 			{ NM_SETTING_CONNECTION_AUTOCONNECT, NM_SETTING_DIFF_RESULT_IN_A },
 			{ NM_SETTING_CONNECTION_READ_ONLY,   NM_SETTING_DIFF_RESULT_IN_A },
-			{ NM_SETTING_CONNECTION_PERMISSIONS, NM_SETTING_DIFF_RESULT_IN_A },
 			{ NULL, NM_SETTING_DIFF_RESULT_UNKNOWN }
 		} },
 		{ NM_SETTING_WIRED_SETTING_NAME, {
@@ -902,221 +526,6 @@ test_connection_diff_no_secrets (void)
 	g_object_unref (b);
 }
 
-static void
-add_generic_settings (NMConnection *connection, const char *ctype)
-{
-	NMSetting *setting;
-	char *uuid;
-
-	uuid = nm_utils_uuid_generate ();
-
-	setting = nm_setting_connection_new ();
-	g_object_set (setting,
-	              NM_SETTING_CONNECTION_ID, "asdfasdfadf",
-	              NM_SETTING_CONNECTION_TYPE, ctype,
-	              NM_SETTING_CONNECTION_UUID, uuid,
-	              NULL);
-	nm_connection_add_setting (connection, setting);
-
-	g_free (uuid);
-
-	setting = nm_setting_ip4_config_new ();
-	g_object_set (setting, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
-	nm_connection_add_setting (connection, setting);
-
-	setting = nm_setting_ip6_config_new ();
-	g_object_set (setting, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO, NULL);
-	nm_connection_add_setting (connection, setting);
-}
-
-static void
-test_connection_good_base_types (void)
-{
-	NMConnection *connection;
-	NMSetting *setting;
-	gboolean success;
-	GError *error = NULL;
-	GByteArray *array;
-	const guint8 bdaddr[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 };
-
-	/* Try a basic wired connection */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_WIRED_SETTING_NAME);
-	setting = nm_setting_wired_new ();
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_no_error (error);
-	g_assert (success);
-	g_object_unref (connection);
-
-	/* Try a wired PPPoE connection */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_PPPOE_SETTING_NAME);
-	setting = nm_setting_pppoe_new ();
-	g_object_set (setting, NM_SETTING_PPPOE_USERNAME, "bob smith", NULL);
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_no_error (error);
-	g_assert (success);
-	g_object_unref (connection);
-
-	/* Wifi connection */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_WIRELESS_SETTING_NAME);
-
-	setting = nm_setting_wireless_new ();
-	array = g_byte_array_new ();
-	g_byte_array_append (array, (const guint8 *) "1234567", 7);
-	g_object_set (setting,
-	              NM_SETTING_WIRELESS_SSID, array,
-	              NM_SETTING_WIRELESS_MODE, "infrastructure",
-	              NULL);
-	g_byte_array_free (array, TRUE);
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_no_error (error);
-	g_assert (success);
-	g_object_unref (connection);
-
-	/* Bluetooth connection */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_BLUETOOTH_SETTING_NAME);
-
-	setting = nm_setting_bluetooth_new ();
-	array = g_byte_array_new ();
-	g_byte_array_append (array, bdaddr, sizeof (bdaddr));
-	g_object_set (setting,
-	              NM_SETTING_BLUETOOTH_BDADDR, array,
-	              NM_SETTING_CONNECTION_TYPE, NM_SETTING_BLUETOOTH_TYPE_PANU,
-	              NULL);
-	g_byte_array_free (array, TRUE);
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_no_error (error);
-	g_assert (success);
-	g_object_unref (connection);
-
-	/* WiMAX connection */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_WIMAX_SETTING_NAME);
-	setting = nm_setting_wimax_new ();
-	g_object_set (setting, NM_SETTING_WIMAX_NETWORK_NAME, "CLEAR", NULL);
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_no_error (error);
-	g_assert (success);
-	g_object_unref (connection);
-
-	/* GSM connection */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_GSM_SETTING_NAME);
-
-	setting = nm_setting_gsm_new ();
-	g_object_set (setting,
-	              NM_SETTING_GSM_NUMBER, "*99#",
-	              NM_SETTING_GSM_APN, "metered.billing.sucks",
-	              NULL);
-	nm_connection_add_setting (connection, setting);
-
-	/* CDMA connection */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_CDMA_SETTING_NAME);
-
-	setting = nm_setting_cdma_new ();
-	g_object_set (setting,
-	              NM_SETTING_CDMA_NUMBER, "#777",
-	              NM_SETTING_CDMA_USERNAME, "foobar@vzw.com",
-	              NULL);
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_no_error (error);
-	g_assert (success);
-	g_object_unref (connection);
-}
-
-static void
-test_connection_bad_base_types (void)
-{
-	NMConnection *connection;
-	NMSetting *setting;
-	gboolean success;
-	GError *error = NULL;
-
-	/* Test various non-base connection types to make sure they are rejected;
-	 * using a fake 'wired' connection so the rest of it verifies
-	 */
-
-	/* Connection setting */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_CONNECTION_SETTING_NAME);
-	setting = nm_setting_wired_new ();
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID);
-	g_assert (success == FALSE);
-	g_object_unref (connection);
-	g_clear_error (&error);
-
-	/* PPP setting */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_PPP_SETTING_NAME);
-	setting = nm_setting_wired_new ();
-	nm_connection_add_setting (connection, setting);
-	setting = nm_setting_ppp_new ();
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID);
-	g_assert (success == FALSE);
-	g_object_unref (connection);
-	g_clear_error (&error);
-
-	/* Serial setting */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_SERIAL_SETTING_NAME);
-	setting = nm_setting_wired_new ();
-	nm_connection_add_setting (connection, setting);
-	setting = nm_setting_serial_new ();
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID);
-	g_assert (success == FALSE);
-	g_object_unref (connection);
-	g_clear_error (&error);
-
-	/* IP4 setting */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_IP4_CONFIG_SETTING_NAME);
-	setting = nm_setting_wired_new ();
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID);
-	g_assert (success == FALSE);
-	g_object_unref (connection);
-	g_clear_error (&error);
-
-	/* IP6 setting */
-	connection = nm_connection_new ();
-	add_generic_settings (connection, NM_SETTING_IP6_CONFIG_SETTING_NAME);
-	setting = nm_setting_wired_new ();
-	nm_connection_add_setting (connection, setting);
-
-	success = nm_connection_verify (connection, &error);
-	g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID);
-	g_assert (success == FALSE);
-	g_object_unref (connection);
-	g_clear_error (&error);
-}
-
 int main (int argc, char **argv)
 {
 	GError *error = NULL;
@@ -1131,22 +540,13 @@ int main (int argc, char **argv)
 
 	/* The tests */
 	test_setting_vpn_items ();
-	test_setting_vpn_update_secrets ();
 	test_setting_ip6_config_old_address_array ();
 	test_setting_gsm_apn_spaces ();
 	test_setting_gsm_apn_bad_chars ();
-	test_setting_to_hash_all ();
-	test_setting_to_hash_no_secrets ();
-	test_setting_to_hash_only_secrets ();
-	test_connection_to_hash_setting_name ();
-	test_setting_connection_permissions_helpers ();
-	test_setting_connection_permissions_property ();
 	test_connection_diff_a_only ();
 	test_connection_diff_same ();
 	test_connection_diff_different ();
 	test_connection_diff_no_secrets ();
-	test_connection_good_base_types ();
-	test_connection_bad_base_types ();
 
 	base = g_path_get_basename (argv[0]);
 	fprintf (stdout, "%s: SUCCESS\n", base);
diff --git a/libnm-util/tests/test-secrets.c b/libnm-util/tests/test-secrets.c
index 6d46f99e..da6f610d 100644
--- a/libnm-util/tests/test-secrets.c
+++ b/libnm-util/tests/test-secrets.c
@@ -155,6 +155,7 @@ test_need_tls_secrets_path (void)
 	NMConnection *connection;
 	const char *setting_name;
 	GPtrArray *hints = NULL;
+	NMSetting8021x *s_8021x;
 
 	connection = make_tls_connection ("need-tls-secrets-path-key", NM_SETTING_802_1X_CK_SCHEME_PATH);
 	ASSERT (connection != NULL,
@@ -170,12 +171,44 @@ test_need_tls_secrets_path (void)
 	        "need-tls-secrets-path-key",
 	        "hints should be NULL since no secrets were required");
 
-	/* Connection is good; clear secrets and ensure private key password is then required */
+	/* Connection is good; clear secrets and ensure private key is then required */
 	nm_connection_clear_secrets (connection);
 
 	hints = NULL;
 	setting_name = nm_connection_need_secrets (connection, &hints);
 	ASSERT (setting_name != NULL,
+	        "need-tls-secrets-path-key",
+	        "unexpected secrets success");
+	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
+			"need-tls-secrets-path-key",
+			"unexpected setting secrets required");
+
+	ASSERT (hints != NULL,
+	        "need-tls-secrets-path-key",
+	        "expected returned secrets hints");
+	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PRIVATE_KEY),
+			"need-tls-secrets-path-key",
+			"expected to require private key, but it wasn't");
+
+	g_object_unref (connection);
+
+	/*** Just clear the private key this time ***/
+
+	connection = make_tls_connection ("need-tls-secrets-path-key-password", NM_SETTING_802_1X_CK_SCHEME_PATH);
+	ASSERT (connection != NULL,
+	        "need-tls-secrets-path-key-password",
+	        "error creating test connection");
+
+	s_8021x = (NMSetting8021x *) nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X);
+	ASSERT (s_8021x != NULL,
+	        "need-tls-secrets-path-key-password",
+	        "error getting test 802.1x setting");
+
+	g_object_set (G_OBJECT (s_8021x), NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, NULL, NULL);
+
+	hints = NULL;
+	setting_name = nm_connection_need_secrets (connection, &hints);
+	ASSERT (setting_name != NULL,
 	        "need-tls-secrets-path-key-password",
 	        "unexpected secrets success");
 	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
@@ -198,6 +231,7 @@ test_need_tls_secrets_blob (void)
 	NMConnection *connection;
 	const char *setting_name;
 	GPtrArray *hints = NULL;
+	NMSetting8021x *s_8021x;
 
 	connection = make_tls_connection ("need-tls-secrets-blob-key", NM_SETTING_802_1X_CK_SCHEME_BLOB);
 	ASSERT (connection != NULL,
@@ -213,24 +247,50 @@ test_need_tls_secrets_blob (void)
 	        "need-tls-secrets-blob-key",
 	        "hints should be NULL since no secrets were required");
 
-	/* Clear secrets and ensure password is again required */
+	/* Connection is good; clear secrets and ensure private key is then required */
 	nm_connection_clear_secrets (connection);
 
 	hints = NULL;
 	setting_name = nm_connection_need_secrets (connection, &hints);
 	ASSERT (setting_name != NULL,
-	        "need-tls-secrets-blob-key-password",
+	        "need-tls-secrets-blob-key",
 	        "unexpected secrets success");
 	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
-			"need-tls-secrets-blob-key-password",
+			"need-tls-secrets-blob-key",
 			"unexpected setting secrets required");
 
 	ASSERT (hints != NULL,
-	        "need-tls-secrets-blob-key-password",
+	        "need-tls-secrets-blob-key",
 	        "expected returned secrets hints");
-	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD),
-			"need-tls-secrets-blob-key-password",
-			"expected to require private key password, but it wasn't");
+	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PRIVATE_KEY),
+			"need-tls-secrets-blob-key",
+			"expected to require private key, but it wasn't");
+
+	g_object_unref (connection);
+
+	/*** Just clear the private key this time ***/
+
+	connection = make_tls_connection ("need-tls-secrets-blob-key-password", NM_SETTING_802_1X_CK_SCHEME_BLOB);
+	ASSERT (connection != NULL,
+	        "need-tls-secrets-blob-key-password",
+	        "error creating test connection");
+
+	s_8021x = (NMSetting8021x *) nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X);
+	ASSERT (s_8021x != NULL,
+	        "need-tls-secrets-blob-key-password",
+	        "error getting test 802.1x setting");
+
+	g_object_set (G_OBJECT (s_8021x), NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, NULL, NULL);
+
+	/* Blobs are already decrypted and don't need a password */
+	hints = NULL;
+	setting_name = nm_connection_need_secrets (connection, &hints);
+	ASSERT (setting_name == NULL,
+	        "need-tls-secrets-blob-key-password",
+	        "unexpected secrets failure");
+	ASSERT (hints == NULL,
+	        "need-tls-secrets-blob-key-password",
+	        "hints should be NULL since no secrets were required");
 
 	g_object_unref (connection);
 }
@@ -337,6 +397,7 @@ test_need_tls_phase2_secrets_path (void)
 	NMConnection *connection;
 	const char *setting_name;
 	GPtrArray *hints = NULL;
+	NMSetting8021x *s_8021x;
 
 	connection = make_tls_phase2_connection ("need-tls-phase2-secrets-path-key",
 	                                         NM_SETTING_802_1X_CK_SCHEME_PATH);
@@ -353,12 +414,45 @@ test_need_tls_phase2_secrets_path (void)
 	        "need-tls-phase2-secrets-path-key",
 	        "hints should be NULL since no secrets were required");
 
-	/* Connection is good; clear secrets and ensure private key password is then required */
+	/* Connection is good; clear secrets and ensure private key is then required */
 	nm_connection_clear_secrets (connection);
 
 	hints = NULL;
 	setting_name = nm_connection_need_secrets (connection, &hints);
 	ASSERT (setting_name != NULL,
+	        "need-tls-phase2-secrets-path-key",
+	        "unexpected secrets success");
+	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
+			"need-tls-phase2-secrets-path-key",
+			"unexpected setting secrets required");
+
+	ASSERT (hints != NULL,
+	        "need-tls-phase2-secrets-path-key",
+	        "expected returned secrets hints");
+	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY),
+			"need-tls-phase2-secrets-path-key",
+			"expected to require private key, but it wasn't");
+
+	g_object_unref (connection);
+
+	/*** Just clear the private key this time ***/
+
+	connection = make_tls_phase2_connection ("need-tls-phase2-secrets-path-key-password",
+	                                         NM_SETTING_802_1X_CK_SCHEME_PATH);
+	ASSERT (connection != NULL,
+	        "need-tls-phase2-secrets-path-key-password",
+	        "error creating test connection");
+
+	s_8021x = (NMSetting8021x *) nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X);
+	ASSERT (s_8021x != NULL,
+	        "need-tls-phase2-secrets-path-key-password",
+	        "error getting test 802.1x setting");
+
+	g_object_set (G_OBJECT (s_8021x), NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, NULL, NULL);
+
+	hints = NULL;
+	setting_name = nm_connection_need_secrets (connection, &hints);
+	ASSERT (setting_name != NULL,
 	        "need-tls-phase2-secrets-path-key-password",
 	        "unexpected secrets success");
 	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
@@ -381,6 +475,7 @@ test_need_tls_phase2_secrets_blob (void)
 	NMConnection *connection;
 	const char *setting_name;
 	GPtrArray *hints = NULL;
+	NMSetting8021x *s_8021x;
 
 	connection = make_tls_phase2_connection ("need-tls-phase2-secrets-blob-key",
 	                                         NM_SETTING_802_1X_CK_SCHEME_BLOB);
@@ -397,79 +492,53 @@ test_need_tls_phase2_secrets_blob (void)
 	        "need-tls-phase2-secrets-blob-key",
 	        "hints should be NULL since no secrets were required");
 
-	/* Connection is good; clear secrets and ensure private key password is then required */
+	/* Connection is good; clear secrets and ensure private key is then required */
 	nm_connection_clear_secrets (connection);
 
 	hints = NULL;
 	setting_name = nm_connection_need_secrets (connection, &hints);
 	ASSERT (setting_name != NULL,
-	        "need-tls-phase2-secrets-blob-key-password",
+	        "need-tls-phase2-secrets-blob-key",
 	        "unexpected secrets success");
 	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
-			"need-tls-phase2-secrets-blob-key-password",
+			"need-tls-phase2-secrets-blob-key",
 			"unexpected setting secrets required");
 
 	ASSERT (hints != NULL,
-	        "need-tls-phase2-secrets-blob-key-password",
+	        "need-tls-phase2-secrets-blob-key",
 	        "expected returned secrets hints");
-	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD),
-			"need-tls-phase2-secrets-blob-key-password",
-			"expected to require private key password, but it wasn't");
+	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY),
+			"need-tls-phase2-secrets-blob-key",
+			"expected to require private key, but it wasn't");
 
 	g_object_unref (connection);
-}
-
-static NMConnection *
-wifi_connection_new (void)
-{
-	NMConnection *connection;
-	NMSettingConnection *s_con;
-	NMSettingWireless *s_wifi;
-	NMSettingWirelessSecurity *s_wsec;
-	unsigned char tmpssid[] = { 0x31, 0x33, 0x33, 0x37 };
-	char *uuid;
-	GByteArray *ssid;
-
-	connection = nm_connection_new ();
-	g_assert (connection);
-
-	/* Connection setting */
-	s_con = (NMSettingConnection *) nm_setting_connection_new ();
-	g_assert (s_con);
 
-	uuid = nm_utils_uuid_generate ();
-	g_object_set (s_con,
-	              NM_SETTING_CONNECTION_ID, "Test Wireless",
-	              NM_SETTING_CONNECTION_UUID, uuid,
-	              NM_SETTING_CONNECTION_AUTOCONNECT, FALSE,
-	              NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME,
-	              NULL);
-	g_free (uuid);
-	nm_connection_add_setting (connection, NM_SETTING (s_con));
+	/*** Just clear the private key this time ***/
 
-	/* Wireless setting */
-	s_wifi = (NMSettingWireless *) nm_setting_wireless_new ();
-	g_assert (s_wifi);
+	connection = make_tls_phase2_connection ("need-tls-phase2-secrets-blob-key-password",
+	                                         NM_SETTING_802_1X_CK_SCHEME_BLOB);
+	ASSERT (connection != NULL,
+	        "need-tls-phase2-secrets-blob-key-password",
+	        "error creating test connection");
 
-	ssid = g_byte_array_sized_new (sizeof (tmpssid));
-	g_byte_array_append (ssid, &tmpssid[0], sizeof (tmpssid));
-	g_object_set (s_wifi,
-	              NM_SETTING_WIRELESS_SSID, ssid,
-	              NM_SETTING_WIRELESS_SEC, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
-	              NULL);
-	g_byte_array_free (ssid, TRUE);
-	nm_connection_add_setting (connection, NM_SETTING (s_wifi));
+	s_8021x = (NMSetting8021x *) nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X);
+	ASSERT (s_8021x != NULL,
+	        "need-tls-phase2-secrets-blob-key-password",
+	        "error getting test 802.1x setting");
 
-	/* Wifi security */
-	s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
-	g_assert (s_wsec);
+	g_object_set (G_OBJECT (s_8021x), NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, NULL, NULL);
 
-	g_object_set (G_OBJECT (s_wsec),
-	              NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "none",
-	              NULL);
-	nm_connection_add_setting (connection, NM_SETTING (s_wsec));
+	/* Blobs are already decrypted and don't need a password */
+	hints = NULL;
+	setting_name = nm_connection_need_secrets (connection, &hints);
+	ASSERT (setting_name == NULL,
+	        "need-tls-phase2-secrets-blob-key-password",
+	        "unexpected secrets failure");
+	ASSERT (hints == NULL,
+	        "need-tls-phase2-secrets-blob-key-password",
+	        "hints should be NULL since no secrets were required");
 
-	return connection;
+	g_object_unref (connection);
 }
 
 static void
@@ -503,100 +572,77 @@ uint_to_gvalue (guint32 i)
 }
 
 static void
-test_update_secrets_wifi_single_setting (void)
+test_update_secrets_wifi (void)
 {
 	NMConnection *connection;
+	NMSettingConnection *s_con;
+	NMSettingWireless *s_wifi;
 	NMSettingWirelessSecurity *s_wsec;
+	unsigned char tmpssid[] = { 0x31, 0x33, 0x33, 0x37 };
+	const char *wepkey = "11111111111111111111111111";
 	GHashTable *secrets;
 	GError *error = NULL;
+	char *uuid;
+	GByteArray *ssid;
 	gboolean success;
-	const char *wepkey = "11111111111111111111111111";
-	const char *tmp;
 
-	connection = wifi_connection_new ();
+	connection = nm_connection_new ();
+	g_assert (connection);
 
-	/* Build up the secrets hash */
-	secrets = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, value_destroy);
-	g_hash_table_insert (secrets, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, string_to_gvalue (wepkey));
-	g_hash_table_insert (secrets, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, uint_to_gvalue (NM_WEP_KEY_TYPE_KEY));
+	/* Connection setting */
+	s_con = (NMSettingConnection *) nm_setting_connection_new ();
+	g_assert (s_con);
 
-	success = nm_connection_update_secrets (connection,
-	                                        NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
-	                                        secrets,
-	                                        &error);
-	g_assert_no_error (error);
-	g_assert (success);
+	uuid = nm_utils_uuid_generate ();
+	g_object_set (s_con,
+	              NM_SETTING_CONNECTION_ID, "Test Wireless",
+	              NM_SETTING_CONNECTION_UUID, uuid,
+	              NM_SETTING_CONNECTION_AUTOCONNECT, FALSE,
+	              NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME,
+	              NULL);
+	g_free (uuid);
+	nm_connection_add_setting (connection, NM_SETTING (s_con));
 
-	/* Make sure the secret is now in the connection */
-	s_wsec = (NMSettingWirelessSecurity *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY);
-	g_assert (s_wsec);
-	tmp = nm_setting_wireless_security_get_wep_key (s_wsec, 0);
-	g_assert_cmpstr (tmp, ==, wepkey);
+	/* Wireless setting */
+	s_wifi = (NMSettingWireless *) nm_setting_wireless_new ();
+	g_assert (s_wifi);
 
-	g_object_unref (connection);
-}
+	ssid = g_byte_array_sized_new (sizeof (tmpssid));
+	g_byte_array_append (ssid, &tmpssid[0], sizeof (tmpssid));
+	g_object_set (s_wifi,
+	              NM_SETTING_WIRELESS_SSID, ssid,
+	              NM_SETTING_WIRELESS_SEC, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
+	              NULL);
+	g_byte_array_free (ssid, TRUE);
+	nm_connection_add_setting (connection, NM_SETTING (s_wifi));
 
-static void
-test_update_secrets_wifi_full_hash (void)
-{
-	NMConnection *connection;
-	NMSettingWirelessSecurity *s_wsec;
-	GHashTable *secrets, *all;
-	GError *error = NULL;
-	gboolean success;
-	const char *wepkey = "11111111111111111111111111";
-	const char *tmp;
+	/* Wifi security */
+	s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
+	g_assert (s_wsec);
 
-	connection = wifi_connection_new ();
+	g_object_set (G_OBJECT (s_wsec),
+	              NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "none",
+	              NULL);
+	nm_connection_add_setting (connection, NM_SETTING (s_wsec));
 
 	/* Build up the secrets hash */
-	all = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) g_hash_table_destroy);
 	secrets = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, value_destroy);
 	g_hash_table_insert (secrets, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, string_to_gvalue (wepkey));
 	g_hash_table_insert (secrets, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, uint_to_gvalue (NM_WEP_KEY_TYPE_KEY));
-	g_hash_table_insert (all, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, secrets);
 
 	success = nm_connection_update_secrets (connection,
 	                                        NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
-	                                        all,
+	                                        secrets,
 	                                        &error);
-	g_assert_no_error (error);
+	if (!success) {
+		/* Print the warning message before we assert success */
+		g_assert (error);
+		g_warning ("Error updating connection secrets: %s", error->message);
+		g_clear_error (&error);
+	}
 	g_assert (success);
-
-	/* Make sure the secret is now in the connection */
-	s_wsec = (NMSettingWirelessSecurity *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY);
-	g_assert (s_wsec);
-	tmp = nm_setting_wireless_security_get_wep_key (s_wsec, 0);
-	g_assert_cmpstr (tmp, ==, wepkey);
-
-	g_object_unref (connection);
 }
 
-static void
-test_update_secrets_wifi_bad_setting_name (void)
-{
-	NMConnection *connection;
-	GHashTable *secrets;
-	GError *error = NULL;
-	gboolean success;
-	const char *wepkey = "11111111111111111111111111";
-
-	connection = wifi_connection_new ();
-
-	/* Build up the secrets hash */
-	secrets = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, value_destroy);
-	g_hash_table_insert (secrets, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, string_to_gvalue (wepkey));
-	g_hash_table_insert (secrets, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, uint_to_gvalue (NM_WEP_KEY_TYPE_KEY));
-
-	success = nm_connection_update_secrets (connection,
-	                                        "asdfasdfasdfasf",
-	                                        secrets,
-	                                        &error);
-	g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND);
-	g_assert (success == FALSE);
-
-	g_object_unref (connection);
-}
 
 int main (int argc, char **argv)
 {
@@ -616,9 +662,7 @@ int main (int argc, char **argv)
 	test_need_tls_phase2_secrets_path ();
 	test_need_tls_phase2_secrets_blob ();
 
-	test_update_secrets_wifi_single_setting ();
-	test_update_secrets_wifi_full_hash ();
-	test_update_secrets_wifi_bad_setting_name ();
+	test_update_secrets_wifi ();
 
 	base = g_path_get_basename (argv[0]);
 	fprintf (stdout, "%s: SUCCESS\n", base);
diff --git a/libnm-util/tests/test-setting-8021x.c b/libnm-util/tests/test-setting-8021x.c
index 6d1e3bd0..6202a142 100644
--- a/libnm-util/tests/test-setting-8021x.c
+++ b/libnm-util/tests/test-setting-8021x.c
@@ -15,7 +15,7 @@
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
- * Copyright (C) 2008 - 2011 Red Hat, Inc.
+ * Copyright (C) 2008 - 2009 Red Hat, Inc.
  *
  */
 
@@ -30,8 +30,8 @@
 #include "nm-setting-8021x.h"
 
 static void
-compare_blob_data (const char *test,
-                   const char *key_path,
+compare_decrypted (const char *test,
+                   const char *decrypted_path,
                    const GByteArray *key)
 {
 	char *contents = NULL;
@@ -39,48 +39,32 @@ compare_blob_data (const char *test,
 	GError *error = NULL;
 	gboolean success;
 
-	success = g_file_get_contents (key_path, &contents, &len, &error);
+	success = g_file_get_contents (decrypted_path, &contents, &len, &error);
 	ASSERT (success == TRUE,
-	        test, "failed to read blob key file: %s", error->message);
+	        test, "failed to read decrypted key file: %s", error->message);
 
-	ASSERT (len > 0, test, "blob key file invalid (size 0)");
+	ASSERT (len > 0, test, "decrypted key file invalid (size 0)");
 
 	ASSERT (len == key->len,
-	        test, "blob key file (%d) and setting key data (%d) lengths don't match",
+	        test, "decrypted key file (%d) and decrypted key data (%d) lengths don't match",
 	        len, key->len);
 
 	ASSERT (memcmp (contents, key->data, len) == 0,
-	        test, "blob key file and blob key data don't match");
+	        test, "decrypted key file and decrypted key data don't match");
 
 	g_free (contents);
 }
 
-#define SCHEME_PATH "file://"
-
-static void
-check_scheme_path (GByteArray *value, const char *path)
-{
-	guint8 *p = value->data;
-
-	g_assert (memcmp (p, SCHEME_PATH, strlen (SCHEME_PATH)) == 0);
-	p += strlen (SCHEME_PATH);
-	g_assert (memcmp (p, path, strlen (path)) == 0);
-	p += strlen (path);
-	g_assert (*p == '\0');
-}
-
 static void
 test_private_key_import (const char *path,
                          const char *password,
+                         const char *decrypted_path,
                          NMSetting8021xCKScheme scheme)
 {
 	NMSetting8021x *s_8021x;
 	gboolean success;
 	NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-	NMSetting8021xCKFormat tmp_fmt;
 	GError *error = NULL;
-	GByteArray *tmp_key = NULL, *client_cert = NULL;
-	const char *pw;
 
 	s_8021x = (NMSetting8021x *) nm_setting_802_1x_new ();
 	ASSERT (s_8021x != NULL, "private-key-import", "setting was NULL");
@@ -93,48 +77,16 @@ test_private_key_import (const char *path,
 	                                             &error);
 	ASSERT (success == TRUE,
 	        "private-key-import", "error reading private key: %s", error->message);
-	ASSERT (format != NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
-	        "private-key-import", "unexpected private key format (got %d)", format);
-	tmp_fmt = nm_setting_802_1x_get_private_key_format (s_8021x);
-	ASSERT (tmp_fmt == format,
-	        "private-key-import", "unexpected re-read private key format (expected %d, got %d)",
-	        format, tmp_fmt);
-
-	/* Make sure the password is what we expect */
-	pw = nm_setting_802_1x_get_private_key_password (s_8021x);
-	ASSERT (pw != NULL,
-	        "private-key-import", "failed to get previous private key password");
-	ASSERT (strcmp (pw, password) == 0,
-	        "private-key-import", "failed to compare private key password");
-
-	if (scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB) {
-		tmp_key = (GByteArray *) nm_setting_802_1x_get_private_key_blob (s_8021x);
-		ASSERT (tmp_key != NULL, "private-key-import", "missing private key blob");
-		compare_blob_data ("private-key-import", path, tmp_key);
-	} else if (scheme == NM_SETTING_802_1X_CK_SCHEME_PATH) {
-		g_object_get (s_8021x, NM_SETTING_802_1X_PRIVATE_KEY, &tmp_key, NULL);
-		ASSERT (tmp_key != NULL, "private-key-import", "missing private key value");
-		check_scheme_path (tmp_key, path);
-		g_byte_array_free (tmp_key, TRUE);
-	} else
-		g_assert_not_reached ();
-
-	/* If it's PKCS#12 ensure the client cert is the same value */
-	if (format == NM_SETTING_802_1X_CK_FORMAT_PKCS12) {
-		g_object_get (s_8021x, NM_SETTING_802_1X_PRIVATE_KEY, &tmp_key, NULL);
-		ASSERT (tmp_key != NULL, "private-key-import", "missing private key value");
-
-		g_object_get (s_8021x, NM_SETTING_802_1X_CLIENT_CERT, &client_cert, NULL);
-		ASSERT (client_cert != NULL, "private-key-import", "missing client certificate value");
-
-		/* make sure they are the same */
-		ASSERT (tmp_key->len == client_cert->len,
-		        "private-key-import", "unexpected different private key and client cert lengths");
-		ASSERT (memcmp (tmp_key->data, client_cert->data, tmp_key->len) == 0,
-		        "private-key-import", "unexpected different private key and client cert data");
-
-		g_byte_array_free (tmp_key, TRUE);
-		g_byte_array_free (client_cert, TRUE);
+
+	if (   scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB
+	    && format != NM_SETTING_802_1X_CK_FORMAT_PKCS12) {
+		const GByteArray *key;
+
+		ASSERT (decrypted_path != NULL, "private-key-import", "missing decrypted key file");
+
+		key = nm_setting_802_1x_get_private_key_blob (s_8021x);
+		ASSERT (key != NULL, "private-key-import", "missing private key blob");
+		compare_decrypted ("private-key-import", decrypted_path, key);
 	}
 
 	g_object_unref (s_8021x);
@@ -143,15 +95,13 @@ test_private_key_import (const char *path,
 static void
 test_phase2_private_key_import (const char *path,
                                 const char *password,
+                                const char *decrypted_path,
                                 NMSetting8021xCKScheme scheme)
 {
 	NMSetting8021x *s_8021x;
 	gboolean success;
 	NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-	NMSetting8021xCKFormat tmp_fmt;
 	GError *error = NULL;
-	GByteArray *tmp_key = NULL, *client_cert = NULL;
-	const char *pw;
 
 	s_8021x = (NMSetting8021x *) nm_setting_802_1x_new ();
 	ASSERT (s_8021x != NULL, "phase2-private-key-import", "setting was NULL");
@@ -164,242 +114,17 @@ test_phase2_private_key_import (const char *path,
 	                                                    &error);
 	ASSERT (success == TRUE,
 	        "phase2-private-key-import", "error reading private key: %s", error->message);
-	ASSERT (format != NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
-	        "phase2-private-key-import", "unexpected private key format");
-	tmp_fmt = nm_setting_802_1x_get_phase2_private_key_format (s_8021x);
-	ASSERT (tmp_fmt == format,
-	        "phase2-private-key-import", "unexpected re-read private key format (expected %d, got %d)",
-	        format, tmp_fmt);
-
-	/* Make sure the password is what we expect */
-	pw = nm_setting_802_1x_get_phase2_private_key_password (s_8021x);
-	ASSERT (pw != NULL,
-	        "phase2-private-key-import", "failed to get previous private key password");
-	ASSERT (strcmp (pw, password) == 0,
-	        "phase2-private-key-import", "failed to compare private key password");
-
-	if (scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB) {
-		tmp_key = (GByteArray *) nm_setting_802_1x_get_phase2_private_key_blob (s_8021x);
-		ASSERT (tmp_key != NULL, "phase2-private-key-import", "missing private key blob");
-		compare_blob_data ("phase2-private-key-import", path, tmp_key);
-	} else if (scheme == NM_SETTING_802_1X_CK_SCHEME_PATH) {
-		g_object_get (s_8021x, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, &tmp_key, NULL);
-		ASSERT (tmp_key != NULL, "phase2-private-key-import", "missing private key value");
-		check_scheme_path (tmp_key, path);
-	} else
-		g_assert_not_reached ();
-
-	/* If it's PKCS#12 ensure the client cert is the same value */
-	if (format == NM_SETTING_802_1X_CK_FORMAT_PKCS12) {
-		g_object_get (s_8021x, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, &tmp_key, NULL);
-		ASSERT (tmp_key != NULL, "private-key-import", "missing private key value");
-
-		g_object_get (s_8021x, NM_SETTING_802_1X_PHASE2_CLIENT_CERT, &client_cert, NULL);
-		ASSERT (client_cert != NULL, "private-key-import", "missing client certificate value");
-
-		/* make sure they are the same */
-		ASSERT (tmp_key->len == client_cert->len,
-		        "private-key-import", "unexpected different private key and client cert lengths");
-		ASSERT (memcmp (tmp_key->data, client_cert->data, tmp_key->len) == 0,
-		        "private-key-import", "unexpected different private key and client cert data");
-
-		g_byte_array_free (tmp_key, TRUE);
-		g_byte_array_free (client_cert, TRUE);
-	}
 
-	g_object_unref (s_8021x);
-}
+	if (   scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB
+	    && format != NM_SETTING_802_1X_CK_FORMAT_PKCS12) {
+		const GByteArray *key;
 
-static void
-test_wrong_password_keeps_data (const char *path, const char *password)
-{
-	NMSetting8021x *s_8021x;
-	gboolean success;
-	NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-	GError *error = NULL;
-	const char *pw;
-
-	s_8021x = (NMSetting8021x *) nm_setting_802_1x_new ();
-	ASSERT (s_8021x != NULL, "wrong-password-keeps-data", "setting was NULL");
-
-	success = nm_setting_802_1x_set_private_key (s_8021x,
-	                                             path,
-	                                             password,
-	                                             NM_SETTING_802_1X_CK_SCHEME_BLOB,
-	                                             &format,
-	                                             &error);
-	ASSERT (success == TRUE,
-	        "wrong-password-keeps-data", "error reading private key: %s", error->message);
-	ASSERT (format != NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
-	        "wrong-password-keeps-data", "unexpected private key format (got %d)", format);
+		ASSERT (decrypted_path != NULL, "phase2-private-key-import", "missing decrypted key file");
 
-	/* Now try to set it to something that's not a certificate */
-	format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-	success = nm_setting_802_1x_set_private_key (s_8021x,
-	                                             "Makefile.am",
-	                                             password,
-	                                             NM_SETTING_802_1X_CK_SCHEME_BLOB,
-	                                             &format,
-	                                             &error);
-	ASSERT (success == FALSE,
-	        "wrong-password-keeps-data", "unexpected success reading private key");
-	ASSERT (error != NULL,
-	        "wrong-password-keeps-data", "unexpected missing error");
-	ASSERT (format == NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
-	        "wrong-password-keeps-data", "unexpected success reading private key format");
-
-	/* Make sure the password hasn't changed */
-	pw = nm_setting_802_1x_get_private_key_password (s_8021x);
-	ASSERT (pw != NULL,
-	        "wrong-password-keeps-data", "failed to get previous private key password");
-	ASSERT (strcmp (pw, password) == 0,
-	        "wrong-password-keeps-data", "failed to compare private key password");
-
-	g_object_unref (s_8021x);
-}
-
-static void
-test_clear_private_key (const char *path, const char *password)
-{
-	NMSetting8021x *s_8021x;
-	gboolean success;
-	NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-	GError *error = NULL;
-	const char *pw;
-
-	s_8021x = (NMSetting8021x *) nm_setting_802_1x_new ();
-	ASSERT (s_8021x != NULL, "clear-private-key", "setting was NULL");
-
-	success = nm_setting_802_1x_set_private_key (s_8021x,
-	                                             path,
-	                                             password,
-	                                             NM_SETTING_802_1X_CK_SCHEME_BLOB,
-	                                             &format,
-	                                             &error);
-	ASSERT (success == TRUE,
-	        "clear-private-key", "error reading private key: %s", error->message);
-	ASSERT (format != NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
-	        "clear-private-key", "unexpected private key format (got %d)", format);
-
-	/* Make sure the password is what we expect */
-	pw = nm_setting_802_1x_get_private_key_password (s_8021x);
-	ASSERT (pw != NULL,
-	        "clear-private-key", "failed to get previous private key password");
-	ASSERT (strcmp (pw, password) == 0,
-	        "clear-private-key", "failed to compare private key password");
-
-	/* Now clear it */
-	success = nm_setting_802_1x_set_private_key (s_8021x,
-	                                             NULL,
-	                                             NULL,
-	                                             NM_SETTING_802_1X_CK_SCHEME_BLOB,
-	                                             NULL,
-	                                             &error);
-	ASSERT (success == TRUE,
-	        "clear-private-key", "unexpected failure clearing private key");
-	ASSERT (error == NULL,
-	        "clear-private-key", "unexpected error clearing private key");
-
-	/* Ensure the password is also now clear */
-	ASSERT (nm_setting_802_1x_get_private_key_password (s_8021x) == NULL,
-	        "clear-private-key", "unexpected private key password");
-
-	g_object_unref (s_8021x);
-}
-
-static void
-test_wrong_phase2_password_keeps_data (const char *path, const char *password)
-{
-	NMSetting8021x *s_8021x;
-	gboolean success;
-	NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-	GError *error = NULL;
-	const char *pw;
-
-	s_8021x = (NMSetting8021x *) nm_setting_802_1x_new ();
-	ASSERT (s_8021x != NULL, "wrong-phase2-password-keeps-data", "setting was NULL");
-
-	success = nm_setting_802_1x_set_phase2_private_key (s_8021x,
-	                                                    path,
-	                                                    password,
-	                                                    NM_SETTING_802_1X_CK_SCHEME_BLOB,
-	                                                    &format,
-	                                                    &error);
-	ASSERT (success == TRUE,
-	        "wrong-phase2-password-keeps-data", "error reading private key: %s", error->message);
-	ASSERT (format != NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
-	        "wrong-phase2-password-keeps-data", "unexpected private key format (got %d)", format);
-
-	/* Now try to set it to something that's not a certificate */
-	format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-	success = nm_setting_802_1x_set_phase2_private_key (s_8021x,
-	                                                    "Makefile.am",
-	                                                    password,
-	                                                    NM_SETTING_802_1X_CK_SCHEME_BLOB,
-	                                                    &format,
-	                                                    &error);
-	ASSERT (success == FALSE,
-	        "wrong-phase2-password-keeps-data", "unexpected success reading private key");
-	ASSERT (error != NULL,
-	        "wrong-phase2-password-keeps-data", "unexpected missing error");
-	ASSERT (format == NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
-	        "wrong-phase2-password-keeps-data", "unexpected success reading private key format");
-
-	/* Make sure the password hasn't changed */
-	pw = nm_setting_802_1x_get_phase2_private_key_password (s_8021x);
-	ASSERT (pw != NULL,
-	        "wrong-phase2-password-keeps-data", "failed to get previous private key password");
-	ASSERT (strcmp (pw, password) == 0,
-	        "wrong-phase2-password-keeps-data", "failed to compare private key password");
-
-	g_object_unref (s_8021x);
-}
-
-static void
-test_clear_phase2_private_key (const char *path, const char *password)
-{
-	NMSetting8021x *s_8021x;
-	gboolean success;
-	NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-	GError *error = NULL;
-	const char *pw;
-
-	s_8021x = (NMSetting8021x *) nm_setting_802_1x_new ();
-	ASSERT (s_8021x != NULL, "clear-phase2-private-key", "setting was NULL");
-
-	success = nm_setting_802_1x_set_phase2_private_key (s_8021x,
-	                                                    path,
-	                                                    password,
-	                                                    NM_SETTING_802_1X_CK_SCHEME_BLOB,
-	                                                    &format,
-	                                                    &error);
-	ASSERT (success == TRUE,
-	        "clear-phase2-private-key", "error reading private key: %s", error->message);
-	ASSERT (format != NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
-	        "clear-phase2-private-key", "unexpected private key format (got %d)", format);
-
-	/* Make sure the password is what we expect */
-	pw = nm_setting_802_1x_get_phase2_private_key_password (s_8021x);
-	ASSERT (pw != NULL,
-	        "clear-phase2-private-key", "failed to get previous private key password");
-	ASSERT (strcmp (pw, password) == 0,
-	        "clear-phase2-private-key", "failed to compare private key password");
-
-	/* Now clear it */
-	success = nm_setting_802_1x_set_phase2_private_key (s_8021x,
-	                                                    NULL,
-	                                                    NULL,
-	                                                    NM_SETTING_802_1X_CK_SCHEME_BLOB,
-	                                                    NULL,
-	                                                    &error);
-	ASSERT (success == TRUE,
-	        "clear-phase2-private-key", "unexpected failure clearing private key");
-	ASSERT (error == NULL,
-	        "clear-phase2-private-key", "unexpected error clearing private key");
-
-	/* Ensure the password is also now clear */
-	ASSERT (nm_setting_802_1x_get_phase2_private_key_password (s_8021x) == NULL,
-	        "clear-phase2-private-key", "unexpected private key password");
+		key = nm_setting_802_1x_get_phase2_private_key_blob (s_8021x);
+		ASSERT (key != NULL, "phase2-private-key-import", "missing private key blob");
+		compare_decrypted ("phase2-private-key-import", decrypted_path, key);
+	}
 
 	g_object_unref (s_8021x);
 }
@@ -409,9 +134,13 @@ int main (int argc, char **argv)
 	GError *error = NULL;
 	DBusGConnection *bus;
 	char *base;
+	const char *decrypted = NULL;
 
 	if (argc < 3)
-		FAIL ("init", "need at least two arguments: <path> <password>");
+		FAIL ("init", "need at least two arguments: <path> <password> [decrypted private key]");
+
+	if (argc == 4)
+		decrypted = argv[3];
 
 	g_type_init ();
 	bus = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
@@ -419,21 +148,12 @@ int main (int argc, char **argv)
 	if (!nm_utils_init (&error))
 		FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message);
 
-	/* Test phase1 and phase2 path scheme */
-	test_private_key_import (argv[1], argv[2], NM_SETTING_802_1X_CK_SCHEME_PATH);
-	test_phase2_private_key_import (argv[1], argv[2], NM_SETTING_802_1X_CK_SCHEME_PATH);
-
-	/* Test phase1 and phase2 blob scheme */
-	test_private_key_import (argv[1], argv[2], NM_SETTING_802_1X_CK_SCHEME_BLOB);
-	test_phase2_private_key_import (argv[1], argv[2], NM_SETTING_802_1X_CK_SCHEME_BLOB);
-
-	/* Test that using a wrong password does not change existing data */
-	test_wrong_password_keeps_data (argv[1], argv[2]);
-	test_wrong_phase2_password_keeps_data (argv[1], argv[2]);
+	/* The tests */
+	test_private_key_import (argv[1], argv[2], NULL, NM_SETTING_802_1X_CK_SCHEME_PATH);
+	test_phase2_private_key_import (argv[1], argv[2], NULL, NM_SETTING_802_1X_CK_SCHEME_PATH);
 
-	/* Test clearing the private key */
-	test_clear_private_key (argv[1], argv[2]);
-	test_clear_phase2_private_key (argv[1], argv[2]);
+	test_private_key_import (argv[1], argv[2], decrypted, NM_SETTING_802_1X_CK_SCHEME_BLOB);
+	test_phase2_private_key_import (argv[1], argv[2], decrypted, NM_SETTING_802_1X_CK_SCHEME_BLOB);
 
 	base = g_path_get_basename (argv[0]);
 	fprintf (stdout, "%s: SUCCESS\n", base);