[-- Attachment #1: Type: text/plain, Size: 987 bytes --] Attached is version 0.2 of John Wiegley's org-crypt.el. Changes: - Headings to encrypt/decrypt are now selected with a tags matcher, which defaults to "crypt". This means that all headings tagged "crypt" will be candidates for encryption/decryption. - The encryption key can be set via the `org-crypt-key' variable, or by setting the CRYPTKEY property. - The entire contents of a heading will be encrypted, including drawers. - New `org-decrypt-entries' function. The org-crypt.el file contains some instructions, some customizable variables, and a to-do list. Carsten: after encrypting a folded headline, the new contents of the heading won't be folded, but the headline will still appear to be folded. For example: * Before... * After...-------BEGIN PGP MESSAGE--------- lkafjd;alkfjd;alfjd;ljf and so on.... Please point me in the right direction for resolving this. Thank you. Of course, feedback is welcome. A HUGE thanks to Carsten and John. [-- Attachment #2: org-crypt.el --] [-- Type: application/emacs-lisp, Size: 5545 bytes --] [-- Attachment #3: Type: text/plain, Size: 65 bytes --] -- Peter Jones, http://pmade.com pmade inc. Louisville, CO US [-- Attachment #4: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Hi Peter,
I am a first time pgp/epg/epa user, so I need more guidance.
I have created a key with
gpg --gen-key
Now when I do
M-x epa-list-keys
I indeed see a line like
u some-random-letters my name (comment) <email>
What exactly must I put into the variable or property for Org?
Thanks.
- Carsten
On Apr 2, 2009, at 5:19 AM, Peter Jones wrote:
> Attached is version 0.2 of John Wiegley's org-crypt.el.
>
> Changes:
>
> - Headings to encrypt/decrypt are now selected with a tags matcher,
> which defaults to "crypt". This means that all headings tagged
> "crypt" will be candidates for encryption/decryption.
>
> - The encryption key can be set via the `org-crypt-key' variable, or
> by setting the CRYPTKEY property.
>
> - The entire contents of a heading will be encrypted, including
> drawers.
>
> - New `org-decrypt-entries' function.
>
> The org-crypt.el file contains some instructions, some customizable
> variables, and a to-do list.
>
> Carsten: after encrypting a folded headline, the new contents of the
> heading won't be folded, but the headline will still appear to be
> folded. For example:
>
> * Before...
> * After...-------BEGIN PGP MESSAGE---------
> lkafjd;alkfjd;alfjd;ljf
> and so on....
>
> Please point me in the right direction for resolving this. Thank you.
>
> Of course, feedback is welcome. A HUGE thanks to Carsten and John.
>
> <org-crypt.el>
> --
> Peter Jones, http://pmade.com
> pmade inc. Louisville, CO US
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
[-- Attachment #1.1: Type: text/plain, Size: 2066 bytes --] Hi Peter, this looks really nice. I very much like the idea using a property to set an encryption key. On Apr 2, 2009, at 5:19 AM, Peter Jones wrote: > Carsten: after encrypting a folded headline, the new contents of the > heading won't be folded, but the headline will still appear to be > folded. For example: > > * Before... > * After...-------BEGIN PGP MESSAGE--------- > lkafjd;alkfjd;alfjd;ljf > and so on.... > > Please point me in the right direction for resolving this. Thank you. Below is a patch which will fix this. Basically you need to go back and fix the visibility of the entry, because you are inserting in a location that confuses the invisibility code. Instead of trying to get the insertion right, it is much better to reset it for the entire tree. The patch also does one other thing: It makes encryption cover the entire subtree of an entry with tag :crypt:, not just the text up to first child. I believe this is more consistent with the structure or Org-mode files. Would you agree? - Carsten --- org-crypt.el.orig 2009-04-02 08:35:24.000000000 +0200 +++ org-crypt.el 2009-04-02 08:46:59.000000000 +0200 @@ -101,12 +101,16 @@ (save-excursion (org-back-to-heading t) (forward-line) - (let ((epg-context (epg-make-context nil t t)) + (let ((folded (org-invisible-p)) + (epg-context (epg-make-context nil t t)) (crypt-key (org-crypt-key-for-heading)) (beg (point)) end encrypted-text) (when (and (not (looking-at "-----BEGIN PGP MESSAGE-----")) - (or (outline-next-heading) (bolp))) + (progn + (org-end-of-subtree t t) + (org-back-over-empty-lines) + t)) (setq end (point) encrypted-text (epg-encrypt-string @@ -115,6 +119,10 @@ (epg-list-keys epg-context crypt-key))) (delete-region beg end) (insert encrypted-text) + (when folded + (save-excursion + (org-back-to-heading t) + (hide-subtree))) nil)))) (defun org-decrypt-entry () [-- Attachment #1.2: Type: text/html, Size: 4027 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Carsten Dominik <carsten.dominik@gmail.com> writes: > I am a first time pgp/epg/epa user, so I need more guidance. > > I have created a key with > > gpg --gen-key > > Now when I do > > M-x epa-list-keys > > I indeed see a line like > > u some-random-letters my name (comment) <email> > > What exactly must I put into the variable or property for Org? Just about anything *should* work, an email address or a key ID. I always encrypt for myself, so I have this in my ~/.emacs: ,---- | (setq org-crypt-key "61C4F407C4EB56B7") `---- I'll add some notes to org-crypt.el to make this more clear. -- Peter Jones, http://pmade.com pmade inc. Louisville, CO US
Carsten Dominik <carsten.dominik@gmail.com> writes: > Below is a patch which will fix this. Basically you need to > go back and fix the visibility of the entry, because you are > inserting in a location that confuses the invisibility code. > Instead of trying to get the insertion right, it is much better > to reset it for the entire tree. Great, thanks! > The patch also does one other thing: > > It makes encryption cover the entire subtree of an entry > with tag :crypt:, not just the text up to first child. > I believe this is more consistent with the structure or > Org-mode files. Would you agree? Yes, I had planned to do that, but wasn't sure exactly how. You saved me some time, thank you. I have one other issue, if you want to point me in the right direction. It seems that org-scan-tags will skip the first heading if that heading is on the first line in the buffer. If you add a blank line above the heading, then org-scan-tags will pass it to the action function. -- Peter Jones, http://pmade.com pmade inc. Louisville, CO US
On Apr 2, 2009, at 5:12 PM, Peter Jones wrote: > Carsten Dominik <carsten.dominik@gmail.com> writes: >> Below is a patch which will fix this. Basically you need to >> go back and fix the visibility of the entry, because you are >> inserting in a location that confuses the invisibility code. >> Instead of trying to get the insertion right, it is much better >> to reset it for the entire tree. > > Great, thanks! > >> The patch also does one other thing: >> >> It makes encryption cover the entire subtree of an entry >> with tag :crypt:, not just the text up to first child. >> I believe this is more consistent with the structure or >> Org-mode files. Would you agree? > > Yes, I had planned to do that, but wasn't sure exactly how. You saved > me some time, thank you. > > I have one other issue, if you want to point me in the right > direction. > It seems that org-scan-tags will skip the first heading if that > heading > is on the first line in the buffer. If you add a blank line above the > heading, then org-scan-tags will pass it to the action function. It is funny, I *never* have a headline in line one. Sometimes it is a hassle to handle this special case, but in this case it is actually easy to fix. ... It's done I am looking forward to integrate org-crypt in 6.26. - Carsten > > -- > Peter Jones, http://pmade.com > pmade inc. Louisville, CO US > > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Hi Peter,
I did solve, I think, the issue with headlines in line one.
Should we go ahead and integrate org-crypt?
- Carsten
On Apr 2, 2009, at 5:12 PM, Peter Jones wrote:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>> Below is a patch which will fix this. Basically you need to
>> go back and fix the visibility of the entry, because you are
>> inserting in a location that confuses the invisibility code.
>> Instead of trying to get the insertion right, it is much better
>> to reset it for the entire tree.
>
> Great, thanks!
>
>> The patch also does one other thing:
>>
>> It makes encryption cover the entire subtree of an entry
>> with tag :crypt:, not just the text up to first child.
>> I believe this is more consistent with the structure or
>> Org-mode files. Would you agree?
>
> Yes, I had planned to do that, but wasn't sure exactly how. You saved
> me some time, thank you.
>
> I have one other issue, if you want to point me in the right
> direction.
> It seems that org-scan-tags will skip the first heading if that
> heading
> is on the first line in the buffer. If you add a blank line above the
> heading, then org-scan-tags will pass it to the action function.
>
> --
> Peter Jones, http://pmade.com
> pmade inc. Louisville, CO US
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Carsten Dominik <carsten.dominik@gmail.com> writes: > I did solve, I think, the issue with headlines in line one. > > Should we go ahead and integrate org-crypt? I only had one more thing I wanted to do to it before the integration. I think it should hook itself into before-save and the org-mode hooks to automatically encrypt and decrypt the entries if org-crypt-automatically is t. Does that sound okay, or should that be the responsibility of the user? -- Peter Jones, http://pmade.com pmade inc. Louisville, CO US