Hi Dan,

I checked the source code of network-manager-applet 0.7.2 and 0.8.1, find
there are differences in eap-method-tls.c:

for the : setup_filepicker,

in 0.7.2:


*static void
setup_filepicker* (GladeXML *xml,
                  const char *name,
                  const char *title,
                  WirelessSecurity *parent,
                  EAPMethodTLS *method,
                  NMConnection *connection,
                  const char *tag)
{
 GtkWidget *widget;
 GtkFileFilter *filter;
 const char *filename = NULL;
 gboolean privkey = FALSE, client_cert = FALSE;
 if (!strcmp (tag, NMA_PATH_PHASE2_PRIVATE_KEY_TAG) || !strcmp (tag,
NMA_PATH_PRIVATE_KEY_TAG))
  privkey = TRUE;
 if (!strcmp (tag, NMA_PATH_PHASE2_CLIENT_CERT_TAG) || !strcmp (tag,
NMA_PATH_CLIENT_CERT_TAG))
  client_cert = TRUE;
 widget = glade_xml_get_widget (xml, name);
 g_assert (widget);
 gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
 gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
title);
 if (connection && tag) {
  filename = g_object_get_data (G_OBJECT (connection), tag);
  if (filename)
   gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename);
 }
 /* Connect a special handler for private keys to intercept PKCS#12 key
types
  * and desensitize the user cert button.
  */
 if (privkey) {
  g_signal_connect (G_OBJECT (widget), "selection-changed",
                    (GCallback) private_key_picker_file_set_cb,
                    method);
  if (filename)
   private_key_picker_helper ((EAPMethod *) method, filename, FALSE);
 }
 g_signal_connect (G_OBJECT (widget), "selection-changed",
                   (GCallback) wireless_security_changed_cb,
                   parent);
 filter = eap_method_default_file_chooser_filter_new (privkey);
 gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter);
 /* For some reason, GTK+ calls set_current_filter (..., NULL) from
  * gtkfilechooserdefault.c::show_and_select_files_finished_loading() on our
  * dialog; so force-reset the filter to what we want it to be whenever
  * it gets cleared.
  */
 if (client_cert)
  g_signal_connect (G_OBJECT (widget), "notify::filter", (GCallback)
reset_filter, filter);
}

and in 0.8.1: there is a path funtion in it:

*static void
setup_filepicker* (GladeXML *xml,
                  const char *name,
                  const char *title,
                  WirelessSecurity *parent,
                  EAPMethodTLS *method,
                  NMSetting8021x *s_8021x,
*                  SchemeFunc scheme_func,
                  PathFunc path_func,
*                  gboolean privkey,
                  gboolean client_cert)
{
 GtkWidget *widget;
 GtkFileFilter *filter;
 const char *filename = NULL;
 widget = glade_xml_get_widget (xml, name);
 g_assert (widget);
 gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
 gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
title);
 if (s_8021x && path_func && scheme_func) {
  if (scheme_func (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH) {
   filename = path_func (s_8021x);
  * if (filename)
    gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename);
*  }
 }
 /* Connect a special handler for private keys to intercept PKCS#12 key
types
  * and desensitize the user cert button.
  */
 if (privkey) {
  g_signal_connect (G_OBJECT (widget), "selection-changed",
                    (GCallback) private_key_picker_file_set_cb,
                    method);
  if (filename)
   private_key_picker_helper ((EAPMethod *) method, filename, FALSE);
 }
 g_signal_connect (G_OBJECT (widget), "selection-changed",
                   (GCallback) wireless_security_changed_cb,
                   parent);
 filter = eap_method_default_file_chooser_filter_new (privkey);
 gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter);
 /* For some reason, GTK+ calls set_current_filter (..., NULL) from
  * gtkfilechooserdefault.c::show_and_select_files_finished_loading() on our
  * dialog; so force-reset the filter to what we want it to be whenever
  * it gets cleared.
  */
 if (client_cert)
  g_signal_connect (G_OBJECT (widget), "notify::filter", (GCallback)
reset_filter, filter);
}
If I want to add the path function to the 0.7.2, could you please give me
some support on how to do it ? Thanks!
2010/8/11 DAVID ZHOU <[email protected]>

> Hi Dan,
>
> It is a .p12 file for sercurity key and .crt file for CA.
>
> 2010/8/11 Dan Williams <[email protected]>
>
>  On Tue, 2010-08-10 at 09:19 +0800, DAVID ZHOU wrote:
>> > Hi Dan,
>> >
>> > Thanks very much ! Here is my debug output. My steps is :
>> >
>> > 1. launch nm-connection-editor through the terminor and add a
>> > connection, input the fields I mentioned in the previous mail. Close
>> > it.
>>
>> What are the top few lines of your private key?  Is it a .PEM file,
>> a .pk12 file, or a .der file?  It appears that nm-connection-editor is
>> not able to determine the private key type, which is used to verify that
>> the password you enter will actually unlock the private key you've
>> specified.
>>
>> For example, an old-style openssl RSA private key starts like this:
>>
>> -----BEGIN RSA PRIVATE KEY-----
>> Proc-Type: 4,ENCRYPTED
>> DEK-Info: DES-EDE3-CBC,5FA2D6D6242C26D0
>>
>>
>> PKCS#12 and DER files are actually binary and won't have this header,
>> but it would be useful to know what kind of key yours is so we can make
>> sure that it's supported.
>>
>> Dan
>>
>> > 2. Re-launch the nm-connection editor again and check the connection.
>> >
>> > 3. the debug output
>> > davidz...@debianzhouwei:~$ nm-connection-editor
>> > (nm-connection-editor:19238): GLib-CRITICAL **: g_hash_table_foreach:
>> > assertion `hash_table != NULL' failed
>> > ** (nm-connection-editor:19238): WARNING **: nm_connection_list_new:
>> > failed to load VPN plugins: Couldn't read VPN .name files
>> > directory /etc/NetworkManager/VPN.
>> > (nm-connection-editor:19238): libglade-WARNING **: unknown property
>> > `orientation' for class `GtkVBox'
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless:
>> > ssid
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless:
>> > ssid
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Error: couldn't verify
>> > private key: 3 Unable to determine private key type.
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Error: couldn't verify
>> > private key: 3 Unable to determine private key type.
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Error: couldn't verify
>> > private key: 3 Unable to determine private key type.
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Error: couldn't verify
>> > private key: 3 Unable to determine private key type.
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Error: couldn't verify
>> > private key: 3 Unable to determine private key type.
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): WARNING **: Error: couldn't verify
>> > private key: 3 Unable to determine private key type.
>> > ** (nm-connection-editor:19238): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> > ** (nm-connection-editor:19238): CRITICAL **:
>> > crypto_get_private_key_data: assertion `password != NULL' failed
>> > davidz...@debianzhouwei:~$ nm-connection-editor
>> > (nm-connection-editor:19302): GLib-CRITICAL **: g_hash_table_foreach:
>> > assertion `hash_table != NULL' failed
>> > ** (nm-connection-editor:19302): WARNING **: nm_connection_list_new:
>> > failed to load VPN plugins: Couldn't read VPN .name files
>> > directory /etc/NetworkManager/VPN.
>> > (nm-connection-editor:19302): libglade-WARNING **: unknown property
>> > `orientation' for class `GtkVBox'
>> > ** (nm-connection-editor:19302): WARNING **: Invalid setting Wireless
>> > Security: Invalid wireless security
>> >
>> >
>> >
>> >
>> > 2010/8/10 Dan Williams <[email protected]>
>> >         On Mon, 2010-08-09 at 14:20 +0800, DAVID ZHOU wrote:
>> >         > Hi,
>> >         > I am using Debian Lenny with Network-Manager 0.7.2
>> >         > Here is the problem I am currently meet:
>> >         >
>> >         > Use  System--->Preference--->Network Connections to add a
>> >         wireless
>> >         > connection, and I use WPA/WPA2 Enterprices, TLS, after I
>> >         input
>> >         > identities,
>> >         > select the right CA file and Private Key file, password.
>> >         After that I
>> >         > close the Network Connections Dialogue. Then reopen the
>> >         Dialogue, only
>> >         > find that the CA file path and Private Key file path is
>> >         missing. As
>> >         > the followed picture shown.
>> >
>> >
>> >         Can you run 'nm-connection-editor' in a terminal, reproduce
>> >         the problem
>> >         in the editor, and then reply with the debug output from that
>> >         terminal?
>> >         That might give us a better idea of what's going on.
>> >
>> >         Dan
>> >
>> >
>>
>>
>>
>
_______________________________________________
networkmanager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to