> > With that code I see something strange: I opened a file which had > > encrypted :crypt: sections (never unencrypted), and after adding a > > space somewhere else and saving, it asked me for an encryption > > password. It shouldn't, since all sections are encrypted. > > I also see „org-crypt: Re-encrypting all decrypted entries due to > > auto-save“ asking me for the encryption password. > > Note that it may be asking about _different_ buffers, not just current. > That's because auto-save-mode saves all the buffers, not just current :) >
It would be good to know what buffer it is asking about; see suggestion later below, about mentioning its name. But I think it's already telling me which buffer it is, by moving the point to the affected section, before asking the question. It's the first section in the current file. And I can see that it's actually encrypted. I see it's trying to decrypt things (therefore it asks for the password). It shouldn't, since I didn't modify any encrypted section. I said „it asked me for an encryption password“ because the GPG prompt confusingly uses the word „encryption“ („Passphrase for symmetric encryption“), though it's actually asking for a decryption password. It calls: org-decrypt-entry() (progn (org-decrypt-entry)) (if (get-text-property (point) 'org-crypt-auto-encrypted) (progn (org-decrypt-entry))) (while (not (eobp)) (if (get-text-property (point) 'org-crypt-auto-encrypted) (progn (org-decrypt-entry))) (goto-char (next-single-char-property-change (point) 'org-crypt-auto-encrypted))) (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (if (get-text-property (point) 'org-crypt-auto-encrypted) (progn (org-decrypt-entry))) (goto-char (next-single-char-property-change (point) 'org-crypt-auto-encrypted)))) (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (if (get-text-property (point) 'org-crypt-auto-encrypted) (progn (org-decrypt-entry))) (goto-char (next-single-char-property-change (point) 'org-crypt-auto-encrypted))))) (let ((modified-flag (buffer-modified-p))) (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (not (eobp)) (if (get-text-property (point) 'org-crypt-auto-encrypted) (progn (org-decrypt-entry))) (goto-char (next-single-char-property-change (point) 'org-crypt-auto-encrypted))))) (set-buffer-modified-p modified-flag)) org-crypt--decrypt-marked-entries() run-hooks(after-save-hook) basic-save-buffer(t) > > But I tried removing all :crypt: tags (I renamed them to something > > else), and saving a large file seems as slow as before. A few seconds > > (often 5 seconds; sometimes it's just 2 or 3; this was the case before > > too). Here's when it's 5, for 1 save: > > I think I fixed this now. > May you try the latest version of the same branch? > This particular case in which there are no :crypt: tags is fast now, thanks. In the same large file as before, saving is instantaneous (well, the usual 100 to 200 ms). 22 2% - run-hook-with-args-until-success 22 2% - org-crypt--encrypt-and-mark-entries 22 2% - let 22 2% - condition-case 22 2% - unwind-protect 22 2% - org-encrypt-entries 22 2% - org-encrypt--map-items 22 2% - let* 22 2% - if 22 2% - or 22 2% - save-excursion 22 2% - save-restriction 22 2% re-search-forward > > I also see new problems (which would take me a long time to explain > > since I don't understand the code or the settings), where: > > - Org asks me for an encryption password even if there are no :crypt: > > tags. I just changed the only :crypt: tag to a :nocrypt: tag and saved > > I cannot reproduce. May you create a small example file and explain how > to trigger the problem you are seeing? This is the text "abc" encrypted with password "abc". Use this file: * hi :nocrypt: -----BEGIN PGP MESSAGE----- jA0ECQMCVpS/qSoed5f/0joBYoIRWdgt/+PVQCsZh9sg176SdnvP2Wc8tH/CV1Rk l2MjAh3Rk19Q2aP2EffpZ5CFeGELTMXCnCYv =FNtI -----END PGP MESSAGE----- Open the file, add a space to the title and save it. The first time it works (no questions asked) because there's no tag called :crypt: Now change the :nocrypt: to :crypt: and save. It asks for the password. Press C-g to cancel. Change again the tag to :nocrypt:. Save. It asks for the encryption password; it shouldn't. Add a space to the title, save, it keeps asking for the encryption password, though there's no :crypt: section. > > > - Org spends around 20 seconds trying to save the file, in a loop, > > reporting: (error "org-crypt: Encryption failed. Not saving the > > buffer. Error: GPG error: \"Encrypt failed\", \"Canceled; Exit\"") > > This is curious, but I again have no clue. Maybe the new version of the > branch works a bit better. > Since this error can happen because of a problem in a different buffer (not the current one), would it be good to mention the file name in that error message? I didn't see this particular problem again. But I see others, which are hard to report and reproduce. For instance I had an encrypted section under a :crypt: header (I see „BEGIN PGP“ and hex codes), I save, and saving *UNencrypts* the header before saving, without asking. It should never decrypt when saving, but it does. This happens with the same small example I posted above (but using the :crypt: tag).