~pkal/autocrypt

ref: 8fcf874d04b92be438d163bbb457f3202e9fa333 autocrypt/autocrypt-message.el -rw-r--r-- 2.3 KiB
8fcf874dPhilip Kaludercic Add autocrypt-message--remove-header 10 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
;;; autocrypt-message.el --- Autocrypt for message-mode -*- lexical-binding:t -*-

;; Author: Philip Kaludercic <philipk@posteo.net>

;; This file is NOT part of Emacs.
;;
;; This file is in the public domain, to the extent possible under law,
;; published under the CC0 1.0 Universal license.
;;
;; For a full copy of the CC0 license see
;; https://creativecommons.org/publicdomain/zero/1.0/legalcode

;;; Commentary:

;; MUA specific functions for `message-mode'
;;
;; Setup with (add-hook 'message-mode-hook #'autocrypt-mode)

;;; Code:

(require 'message)
(require 'autocrypt)

;;;###autoload
(defun autocrypt-message--install ()
  "Prepare autocrypt for message buffers."
  (add-hook 'message-setup-hook #'autocrypt-compose-setup nil t)
  (add-hook 'message-send-hook #'autocrypt-compose-pre-send nil t)
  (unless (lookup-key message-mode-map (kbd "C-c RET C-a"))
    (local-set-key (kbd "C-c RET C-a") #'autocrypt-compose-setup)))

(defun autocrypt-message--uninstall ()
  "Remove autocrypt hooks for message mode."
  (remove-hook 'message-setup-hook #'autocrypt-compose-setup t)
  (remove-hook 'message-send-hook #'autocrypt-compose-pre-send t)
  (when (eq (lookup-key message-mode-map (kbd "C-c RET C-a"))
            #'autocrypt-compose-setup)
    (local-set-key (kbd "C-c RET C-a") nil)))

(defun autocrypt-message--get-header (header)
  "Return the value for HEADER."
  (message-fetch-field header))

(defun autocrypt-message--add-header (header value)
  "Insert HEADER with VALUE into the message head."
  (with-silent-modifications
    (message-add-header (concat header ": " value))))

(defun autocrypt-message--remove-header (header)
  "Insert HEADER with VALUE into the message head."
  (with-silent-modifications
    (message-remove-header header)))

(defun autocrypt-message--sign-encrypt ()
  "Sign and encrypt message."
  (mml-secure-message-sign-encrypt "pgpmime"))

(defun autocrypt-message--sign-secure-attach (payload)
  "Attach and encrypt buffer PAYLOAD."
  (mml-attach-buffer payload)
  (mml-secure-part "pgpmime")
  (add-hook 'message-send-hook
            (lambda () (kill-buffer payload))
            nil t))

(defun autocrypt--message-encrypted-p ()
  "Check if the current message is encrypted."
  (mml-secure-is-encrypted-p))

(provide 'autocrypt-message)

;;; autocrypt-message.el ends here