void form_EntrySaving(object sender, KeePass.Util.CancellableOperationEventArgs e)
 {
     if (am_current_tab)
     {
         if (!check_confirm_password_ok())
         {
             e.Cancel = true;
             return;
         }
         save_changes();
         form.UpdateEntryStrings(false, true);
     }
 }
Exemplo n.º 2
0
        private void OnEntrySaving(object sender, KeePass.Util.CancellableOperationEventArgs e)
        {
            if (!Configuration.Active)
            {
                return;
            }
            //try reading fields from password entry form
            //checking and update the expiry date this way will save
            //us from creating one more backup just for
            //changing the expiry date in the "Touched" event
            if (m_pweForm == null)
            {
                return;
            }

            PEDCalcValue days = m_pweForm.EntryRef.GetPEDValue(true);

            if (!days.Specific)
            {
                return;                             //Nothing to do
            }
            CheckBox expires = (CheckBox)Tools.GetControl("m_cbExpires", m_pweForm);

            if (expires == null)
            {
                return;                              //read failed
            }
            if (!expires.Checked)
            {
                return;                               //entry does not expire (any longer)
            }
            DateTimePicker expiryDate = (DateTimePicker)Tools.GetControl("m_dtExpireDateTime", m_pweForm);

            if (expiryDate == null)
            {
                return;                                //read failed
            }
            if ((TimeUtil.ToUtc(expiryDate.Value, false) != m_pweForm.EntryRef.ExpiryTime) && m_pweForm.EntryRef.Expires)
            {
                return;                                                                                                                       //expiry date was already changed by the user
            }
            SecureTextBoxEx password = (SecureTextBoxEx)Tools.GetControl("m_tbPassword", m_pweForm);

            if (password == null)
            {
                return;                               //read failed;
            }
            byte[] pw_new = password.TextEx.ReadUtf8();
            byte[] pw_old = m_pweForm.EntryRef.Strings.GetSafe(PwDefs.PasswordField).ReadUtf8();
            if (MemUtil.ArraysEqual(pw_new, pw_old))
            {
                return;                                                  //password was not changed
            }
            //calculate new expiry date and write back to form field
            if (expiryDate.Value.Kind == DateTimeKind.Local)
            {
                expiryDate.Value = days.NewExpiryDateUtc.ToLocalTime();
            }
            else
            {
                expiryDate.Value = days.NewExpiryDateUtc;
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Event handler triggered when the password entry is being saved.
 /// </summary>
 /// <param name="sender">The object which triggered the event.</param>
 /// <param name="e">The event arguments.</param>
 private void Container_EntrySaving(object sender, KeePass.Util.CancellableOperationEventArgs e)
 {
     this.SaveSettings();
 }