diff options
Diffstat (limited to 'smime/gui/component.c')
-rw-r--r-- | smime/gui/component.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/smime/gui/component.c b/smime/gui/component.c index 1b27f2d3d2..3c86b6e820 100644 --- a/smime/gui/component.c +++ b/smime/gui/component.c @@ -52,6 +52,31 @@ smime_pk11_passwd (ECertDB *db, PK11SlotInfo* slot, gboolean retry, char **passw return TRUE; } +static gboolean +smime_pk11_change_passwd (ECertDB *db, char **old_passwd, char **passwd, gpointer arg) +{ + char *prompt; + + /* XXX need better strings here, just copy mozilla's? */ + + if (!old_passwd) { + /* we're setting the password initially */ + prompt = _("Enter new password for certificate database"); + + *passwd = e_passwords_ask_password (_("Enter new password"), NULL, NULL, + prompt, TRUE, + E_PASSWORDS_DO_NOT_REMEMBER, NULL, + NULL); + } + else { + /* we're changing the password */ + /* XXX implement this... */ + } + + /* this should return FALSE if they canceled. */ + return TRUE; +} + void smime_component_init (void) { @@ -63,4 +88,8 @@ smime_component_init (void) g_signal_connect (e_cert_db_peek (), "pk11_passwd", G_CALLBACK (smime_pk11_passwd), NULL); + + g_signal_connect (e_cert_db_peek (), + "pk11_change_passwd", + G_CALLBACK (smime_pk11_change_passwd), NULL); } |