Change the API for setting and getting friendlyNames of PKCS12
diff --git a/test/test_crypto.py b/test/test_crypto.py
index bfac032..684ae06 100644
--- a/test/test_crypto.py
+++ b/test/test_crypto.py
@@ -801,6 +801,7 @@
         self.assertEqual(None, p12.get_certificate())
         self.assertEqual(None, p12.get_privatekey())
         self.assertEqual(None, p12.get_ca_certificates())
+        self.assertEqual(None, p12.get_friendlyname())
 
 
     def test_type_errors(self):
@@ -819,6 +820,8 @@
         self.assertRaises(TypeError, p12.set_ca_certificates, X509())
         self.assertRaises(TypeError, p12.set_ca_certificates, (3, 4))
         self.assertRaises(TypeError, p12.set_ca_certificates, ( PKey(), ))
+        self.assertRaises(TypeError, p12.set_friendlyname, 6)
+        self.assertRaises(TypeError, p12.set_friendlyname, ('foo', 'bar'))
 
 
     def test_key_only(self):
@@ -860,7 +863,7 @@
         self.assertEqual(cleartextCertificatePEM, dump_certificate(FILETYPE_PEM, p12.get_ca_certificates()[0]))
 
 
-    def gen_pkcs12( self, cert_pem, key_pem, ca_pem ):
+    def gen_pkcs12( self, cert_pem=None, key_pem=None, ca_pem=None, fn=None ):
         """
         Generate a PKCS12 object with components from PEM.
         Verify that the set functions return None.
@@ -875,6 +878,9 @@
         if ca_pem:
             ret = p12.set_ca_certificates( ( load_certificate(FILETYPE_PEM, ca_pem), ) )
             self.assertEqual(ret, None)
+        if fn:
+            ret = p12.set_friendlyname( fn )
+            self.assertEqual(ret, None)
         return p12
 
 
@@ -939,13 +945,24 @@
 
     def test_friendly_name(self):
         """
-        Test that we can export a L{PKCS12} with a friendly name.
+        Test that we can get and set a friendlyName on a PKCS12.
+        Test that we can export a L{PKCS12} with a friendly name,
+        and confirm we can load the PKCS12 and find the friendly name.
+        Use the openssl program to also verify the certs in the PKCS12.
         """
-        p12 = self.gen_pkcs12( server_cert_pem, server_key_pem, root_cert_pem )
         passwd = 'Dogmeat[]{}!@#$%^&*()~`?/.,<>-_+=";:'
-        for friendly_name in ('Serverlicious', None, '', '###'):
-            dumped_p12 = p12.export(passphrase=passwd, iter=2, maciter=3, 
-                                friendly_name=friendly_name)
+        p12 = self.gen_pkcs12( server_cert_pem, server_key_pem, root_cert_pem )
+        for friendly_name in ('Serverlicious', None, '###'):
+            p12.set_friendlyname(friendly_name)
+            self.assertEqual(p12.get_friendlyname(), friendly_name)
+            dumped_p12 = p12.export(passphrase=passwd, iter=2, maciter=3) 
+            reloaded_p12 = load_pkcs12(dumped_p12, passwd)
+            self.assertEqual(p12.get_friendlyname(), 
+                    reloaded_p12.get_friendlyname())
+            # We would use the openssl program to confirm the friendly 
+            # name, but it is not possible.  The pkcs12 command 
+            # does not store the friendly name in the cert's 
+            # alias, which we could then extract.
             self.check_recovery(dumped_p12, key=server_key_pem, 
                     cert=server_cert_pem, ca=root_cert_pem, passwd=passwd)