2004-01-07 Not Zed <NotZed@Ximian.com>
* gui/e-cert-selector.c (ecs_find_current): check certlist !=
NULL, CERT_LIST_EMPTY dereferences it. Bug #52457.
2004-01-05 Chris Toshok <toshok@ximian.com>
* lib/e-cert-db.c (e_cert_db_login_to_slot): oops, remove
hardcoded test passwd :)
* gui/component.c (smime_pk11_passwd): new function, implement the
password dialog for PK11 slot authentication.
(smime_component_init): new function, initialize any gui related
signals that the backend exposes.
* gui/certificate-manager.c (import_your): use
e_cert_db_import_pkcs12_file.
(delete_your): new function, implement.
(view_your): same.
(backup_your): new function, stub out.
(backup_all_your): same.
(create_yourcerts_treemodel): new function.
(initialize_yourcerts_ui): do all the sorting foo, and hook up all
the signals.
(ainitialize_contactcerts_ui): same.
(initialize_authoritycerts_ui): same.
(view_contact): treemodel -> streemodel.
(view_ca): same.
(delete_contact): same, and convert from the sort iter to the
child iter before we remove.
(delete_ca): same.
(import_contact): call gtk_tree_view_expand_all.
(import_ca): same.
(add_user_cert): append to the child model, not the sort model.
(add_contact_cert): same.
(add_ca_cert): same.
(unload_certs): implement the E_CERT_USER case, and fix the
USER/CA stuff to use the sorted treemodels.
(load_certs): remove spew.
(populate_ui): expand all the tree views.
* lib/.cvsignore: ignore the generated marshalling files.
* lib/Makefile.am: add the marshalling foo.
* lib/smime-marshal.list (BOOL): new file.
* lib/e-cert-db.c (pk11_password): new function, emit the
pk11_passwd signal.
(initialize_nss): new function, split out all the nss init code
here, and add all the PKCS12 cipers.
(install_loadable_roots): new function, split this code out from
the class_init.
(e_cert_db_class_init): call initialize_nss() and
install_loadable_roots(). also register our pk11_passwd signal.
(e_cert_db_import_pkcs12_file): implement.
(e_cert_db_login_to_slot): new function, implement.
* lib/e-cert-db.h (struct _ECertDBClass): add pk11_passwd signal,
and add prototype for e_cert_db_login_to_slot.
* lib/e-pkcs12.c (input_to_decoder): remove spew.
(prompt_for_password): fix this.
(import_from_file_helper): fix fix fix, and remove spew.
(write_export_file): nuke, we don't need this.
2004-01-04 Chris Toshok <toshok@ximian.com>
* gui/certificate-viewer.c (fill_in_general): use <tt> markup
around the fingerprints, and italicize the Not part of certificate
text.
(fill_in_details): create a monospace text tag to be used in the
field value textbuffer.
(fields_selection_changed): use the text tag when inserting text.
2003-12-10 Not Zed <NotZed@Ximian.com>
* gui/e-cert-selector.c (e_cert_selector_new): if we get no
matching certs, show empty menu rather than crashing. #51922.
2003-12-05 JP Rosevear <jpr@ximian.com>
* lib/e-cert.c: fix for C89
2003-12-04 Chris Toshok <toshok@ximian.com>
* gui/certificate-viewer.c (certificate_viewer_show): set the
window title based on e_cert_get_window_title.
* lib/e-cert.c (e_cert_get_window_title): new function, for use
with the certificate viewer.
(create_asn1_struct): call e_cert_get_window_title.
2003-12-04 Chris Toshok <toshok@ximian.com>
* lib/e-cert.h: add prototype for e_cert_get_asn1_struct.
* lib/e-cert.c (e_cert_dispose): unref the asn1 object.
(get_int_value): copy and massage from mozilla source.
(process_version): same.
(process_serial_number_der): same.
(get_default_oid_format): same.
(get_oid_text): same.
(process_raw_bytes): same.
(process_sec_algorithm_id): same.
(process_subject_public_key_info): same.
(process_ns_cert_type_extensions): same.
(process_key_usage_extensions): same.
(process_extension_data): same.
(process_single_extension): same.
(process_extensions): same.
(process_name): same.
(create_tbs_certificate_asn1_struct): same.
(create_asn1_struct): same.
(e_cert_get_asn1_struct): new function.
* lib/e-asn1-object.c (e_asn1_object_dispose): free the display
name, value, and children.
(e_asn1_object_init): assume it's a valid container unless we hear
otherwise.
(e_asn1_object_new_from_cert): nuke.
(e_asn1_object_set_valid_container): implement.
(e_asn1_object_append_child): same.
(e_asn1_object_set_display_name): same.
(e_asn1_object_set_display_value): same.
* lib/e-asn1-object.h: add prototypes for
e_asn1_object_set_valid_container, e_asn1_object_set_display_name,
e_asn1_object_set_display_value, and e_asn1_object_append_child.
* gui/certificate-viewer.c (populate_fields_tree): populate the
tree from the asn structure.
(hierarchy_selection_changed): blow away the old fields_tree
content and populate it again.
(fields_selection_changed): implement, set the text view's
contents to the asn1 object's display_value.
(fill_in_details): expand all nodes in the hierarchy tree.
2003-12-03 Chris Toshok <toshok@ximian.com>
* lib/Makefile.am (libessmime_la_SOURCES): add e-asn1-object.[ch]
* gui/smime-ui.glade: rename the ca trust dialog, and give it a
proper id.
* gui/certificate-manager.c (yourcerts_selection_changed): just
use @selection.
(contactcerts_selection_changed): same.
(authoritycerts_selection_changed): same.
* gui/certificate-viewer.c (free_data): free the cert chain.
(fill_in_general): move all the general tab stuff here.
(hierarchy_selection_changed): new function. not finished.
(fields_selection_changed): new function, unimplemented.
(fill_in_details): new function, fill in the heirarchy and hook up
signals and stuff.
(certificate_viewer_show): call fill_in_general/fill_in_details.
* lib/e-cert.c (e_cert_get_chain): new function.
* lib/e-cert.h: add prototype for e_cert_get_chain.
2003-12-03 Chris Toshok <toshok@ximian.com>
* lib/e-cert-db.c (e_cert_db_class_init): grovel around at startup
time for mozilla's pkcs11 module so we can get the same default
set of root certs.
2003-11-30 Larry Ewing <lewing@ximian.com>
* lib/e-pkcs12.c (nickname_collision): make sure declarations
precede logic for older compilers.
* gui/Makefile.am (INCLUDES): don't define GTK_DISABLE_DEPRECATED
it breakes on gtk-2.3 with gtk_option_menu_get_history.
2003-11-26 Chris Toshok <toshok@ximian.com>
* gui/certificate-viewer.[ch]: mostly implement a viewer for
certificates.
* gui/smime-ui.glade: fingerprints-sh1 -> fingerprints-sha1.
* gui/certificate-manager.c (import_your): new function, use
e-pkcs12 to implement it.
(initialize_yourcerts_ui): hook up the import button.
(view_contact): new function, bring up the certificate viewer.
(initialize_contactcerts_ui): hook up the view button.
(view_ca): new function, bring up the certificate viewer.
(initialize_authoritycerts_ui): hook up the view button.
* gui/Makefile.am (libevolution_smime_la_SOURCES): add
certificate-viewer.[ch]
* lib/e-cert.c (e_cert_dispose): free all the new cached foo.
(e_cert_populate): populate all the new cached foo.
(e_cert_get_issuer_cn): new function.
(e_cert_get_issuer_org): same.
(e_cert_get_issuer_org_unit): same.
(e_cert_get_issued_on_time): same.
(e_cert_get_issued_on): same.
(e_cert_get_expires_on_time): same.
(e_cert_get_expires_on): same.
(e_cert_get_serial_number): same.
(e_cert_get_sha1_fingerprint): same.
(e_cert_get_md5_fingerprint): same.
* lib/e-cert.h: add prototypes for lots more accessors.
* lib/e-cert-db.c (e_cert_db_find_cert_by_key): fix typo.
(e_cert_db_find_cert_by_email_address): call
CERT_DestroyCertificate to free the cert.
(default_nickname): new function.
(e_cert_db_import_user_cert): implement.
(e_cert_db_import_server_cert): add blurb.
* lib/e-pkcs12.[ch]: new files.
* lib/Makefile.am (libessmime_la_SOURCES): add e-pkcs12.[ch]
2003-11-12 Not Zed <NotZed@Ximian.com>
* gui/smime-ui.glade: added cert_selector widget to be placed
inside a dialog.
* gui/e-cert-selector.[ch]: new class to allow user to select a
certificate for signing or encrypting.
2003-11-12 Chris Toshok <toshok@ximian.com>
* lib/e-cert.c (e_cert_get_cert_type): implement using the
e-cert-trust foo.
(e_cert_get_email): implement.
* lib/e-cert.h: add UNKNOWN cert type.
* gui/smime-ui.glade: fix capitalization of "Import" on the
contact certificate page.
* gui/certificate-manager.c (import_contact): new function.
implement email cert importing.
(delete_contact): new function.
(unload_certs): implement for E_CERT_CONTACT.
(certificate_manager_config_control_new): get the contact cert
action buttons from libglade.
* lib/e-cert-db.c (handle_ca_cert_download): mostly implement the
trust settings correctly. this still needs work pending the CA
trust dialog's completion.
(e_cert_db_delete_cert): fix the ifdef'ed code.
(e_cert_db_import_user_cert): remove the ifdef'ed body of this,
since it was copied from the CA code.
* lib/Makefile.am (libessmime_la_SOURCES): add e-cert-trust.[ch]
* lib/e-cert-trust.[ch]: new files, basically c&p nsNSSCertTrust
from mozilla's PSM.
2003-11-11 Chris Toshok <toshok@ximian.com>
* tests/import-cert.c (main): don't init NSS here. it's done in
e_cert_db_peek.
* lib/Makefile.am (libessmime_la_SOURCES): add e-cert-db.[ch]
* gui/smime-ui.glade: set the initial sensitivity of the buttons
here, and add the beginnings of the CA import dialog (where you
assign trust levels to it.)
* gui/certificate-manager.c (handle_selection_changed):
sensitize/desensitize all the various buttons correctly when the
GtkTreeView's selection changes.
(yourcerts_selection_changed): new, selection change handler for
the Your Certs tab.
(initialize_yourcerts_ui): hook up the tree selection, and add a
model column for the ECert.
(contactcerts_selection_changed): new, selection change handler
for the Contact Certs tab.
(initialize_contactcerts_ui): hook up the tree selection, and add
a model column for the ECert.
(import_ca): new function.
(delete_ca): new function.
(authoritycerts_selection_changed): new, selection change handler
for the Authority Certs tab.
(create_authoritycerts_treemodel): new function for creating the
authority cert tree model. the other tabs will eventually use a
separate function for this too, as unload_certs gets fleshed out.
(initialize_authoritycerts_ui): hook up the tree selection, and
add import/delete buttons.
(destroy_key): dtor for the keys in our hashes.
(destroy_value): dtor for the values in our hashes.
(unload_certs): new function. basically destroy/recreate the
model and hash for the particular cert type/tab.
(load_certs): use e_cert_get_cert_type.
(populate_ui): use unload_certs as well as load_certs.
(certificate_manager_config_control_new): call e_cert_db_peek
,which will initialize all of NSS. hook up all the widgets from
libglade.
* lib/e-cert.h: add prototypes for all the new methods, and add
the ECertType enum.
* lib/e-cert.c (e_cert_dispose): handle deletion from the DB here.
(e_cert_new_from_der): new function.
(e_cert_get_internal_cert): new function.
(e_cert_get_raw_der): new function.
(e_cert_get_issuer_name): new
(e_cert_get_subject_name): new
(e_cert_mark_for_deletion): new
(e_cert_get_cert_type): new.
(e_cert_is_ca_cert): nuke.
* lib/e-cert-db.[ch]: new, partly implemented, derived from
mozilla's nsNSSCertificateDB code.
2003-10-30 Chris Toshok <toshok@ximian.com>
* gui/certificate-manager.h: add boilerplate.
* gui/certificate-manager.c
(certificate_manager_config_control_new): return NULL if the
NSS_InitReadWrite fails - we should probably give better status
though, or return a GtkLabel with an error message....
* gui/Makefile.am (INCLUDES): use CERT_UI_CFLAGS.
(TEST_LIBS): use CERT_UI_LIBS.
2003-10-30 Chris Toshok <toshok@ximian.com>
* tests/Makefile.am (INCLUDES): use CERT_UI_CFLAGS.
(TEST_LIBS): use CERT_UI_LIBS.
2003-10-28 Chris Toshok <toshok@ximian.com>
* gui/Makefile.am (libevolution_smime_la_SOURCES): add
certificate-manager.h
2003-10-23 Chris Toshok <toshok@ximian.com>
* lib/e-cert.[ch], lib/Makefile.am, gui/certificate-manager.[ch],
gui/Makefile.am, gui/smime-ui.glade, Makefile.am: initial addition
of s/mime foo.