;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\303\304\305\306\307DD\310\311\312\313\314&\210\303\315\305\306\316DD\317\311\320\313\314&\210\303\321\305\306\322DD\323\311\324\313\314&\210\303\325\305\306\326DD\327\311\330\313\314&\210\303\331\305\306\332DD\333\311\334\313\314&\210\335\336\337\340!\"\210\335\341\342\340!\"\210\335\343\341\"\210\344\343\345\346#\210\347\340\350\341#\351\340\352\353\354$\207" [require message ebdb-com custom-declare-variable ebdb-pgp-default-action funcall function #[0 "\300\207" [nil] 1] "Default action when sending a message and the recipients are not in EBDB.\nThis should be one of the following symbols:\n nil Do nothing\n sign Sign the message\n sign-query Query whether to sign the message\n encrypt Encrypt the message\n encrypt-query Query whether to encrypt the message\nSee info node `(message)security'." :type (choice (const :tag "Do Nothing" nil) (const :tag "Encrypt" encrypt) (const :tag "Query encryption" encrypt-query) (const :tag "Sign" sign) (const :tag "Query signing" sign-query)) :group ebdb-utilities-pgp ebdb-pgp-ranked-actions #[0 "\300\207" [(encrypt-query sign-query encrypt sign)] 1] "Ranked list of actions when sending a message.\nIf a message has multiple recipients such that their EBDB records specify\ndifferent actions for this message, `ebdb-pgp' will perform the action\nwhich appears first in `ebdb-pgp-ranked-actions'.\nThis list should include the following four symbols:\n sign Sign the message\n sign-query Query whether to sign the message\n encrypt Encrypt the message\n encrypt-query Query whether to encrypt the message." (repeat (symbol :tag "Action")) ebdb-pgp-headers #[0 "\300\207" [("To" "Cc")] 1] "Message headers to look at." (repeat (string :tag "Message header")) ebdb-pgp-method #[0 "\300\207" [pgpmime] 1] "Default method for signing and encrypting messages.\nIt should be one of the keys of `ebdb-pgp-method-alist'.\nThe default methods include\n pgp Add MML tags for PGP format\n pgpauto Add MML tags for PGP-auto format\n pgpmime Add MML tags for PGP/MIME\n smime Add MML tags for S/MIME\nSee info node `(message)security'." (choice (const :tag "MML PGP" pgp) (const :tag "MML PGP-auto" pgpauto) (const :tag "MML PGP/MIME" pgpmime) (const :tag "MML S/MIME" smime) (symbol :tag "Custom")) ebdb-pgp-method-alist #[0 "\300\207" [((pgp mml-secure-message-sign-pgp mml-secure-message-encrypt-pgp) (pgpmime mml-secure-message-sign-pgpmime mml-secure-message-encrypt-pgpmime) (smime mml-secure-message-sign-smime mml-secure-message-encrypt-smime) (pgpauto mml-secure-message-sign-pgpauto mml-secure-message-encrypt-pgpauto))] 1] "Alist of methods for signing and encrypting a message with `ebdb-pgp'.\nEach method is a list (KEY SIGN ENCRYPT).\nThe symbol KEY identifies the method. The function SIGN signs the message;\nthe function ENCRYPT encrypts it. These functions take no arguments.\nThe default methods include\n pgp Add MML tags for PGP format\n pgpauto Add MML tags for PGP-auto format\n pgpmime Add MML tags for PGP/MIME\n smime Add MML tags for S/MIME\nSee info node `(message)security'." (repeat (list (symbol :tag "Key") (symbol :tag "Sign method") (symbol :tag "Encrypt method"))) defalias ebdb-field-pgp-p eieio-make-class-predicate ebdb-field-pgp ebdb-field-pgp--eieio-childp eieio-make-child-predicate ebdb-field-pgp-child-p make-obsolete "use (cl-typep ... \\='ebdb-field-pgp) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ebdb-field-user) ((action :initarg :action :type symbol :custom (choice (const :tag "Encrypt" encrypt) (const :tag "Query encryption" encrypt-query) (const :tag "Sign" sign) (const :tag "Query signing" sign-query)) :documentation "A symbol indicating what action to take when sending a\n message to this contact.")) (:documentation "A field defining a default signing/encryption\n action for a record. This action is taken by calling\n `ebdb-pgp' in a message/mail composition buffer, or by adding\n that function to the message/mail-send-hook." :human-readable "pgp action")] 8) #@71 Create a new object of class type `ebdb-field-pgp'. (fn &rest SLOTS) (defalias 'ebdb-field-pgp #[128 "\300\301\302#\207" [apply make-instance ebdb-field-pgp] 5 (#$ . 4572)]) (byte-code "\300\301\302\303#\300\207" [function-put ebdb-field-pgp compiler-macro ebdb-field-pgp--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'ebdb-field-pgp--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 4869)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\307\310%\207" [cl-generic-define-method ebdb-string nil ((field ebdb-field-pgp)) #[257 "\300\301\302\"!\207" [symbol-name slot-value action] 5 "\n\n(fn FIELD)"] ebdb-read ((class (subclass ebdb-field-pgp)) &optional slots obj) t #[1026 "\301\302\303\205 \304\305\"\306$!\307\310##\207" [ebdb-pgp-ranked-actions intern ebdb-read-string "PGP action" slot-value action t plist-put :action] 11 "\n\n(fn CL--CNM CLASS &optional SLOTS OBJ)"]] 6) #@1087 Add PGP MML tags to a message according to the recipients' EBDB records. Use it by adding a "pgp action" field to one or more records. When sending a message to those records (ie, the records appear in `ebdb-pgp-headers' headers), this grabs the action from their `ebdb-field-pgp' field. If multiple records propose different actions, perform the action which appears first in `ebdb-pgp-ranked-actions'. If this proposes no action at all, use `ebdb-pgp-default-action'. The variable `ebdb-pgp-method' defines the method which is actually used for signing and encrypting. This command works with both `mail-mode' and `message-mode' to send signed or encrypted mail. This file does not automatically set up hooks for signing and encryption, see Info node `(message)Signing and encryption' for reasons why. Instead, you might want to call the command `ebdb-pgp' manually, then call `mml-preview'. If you do decide to set up automatic signing/encryption hooks, use one of the following, as appropriate: (add-hook 'message-send-hook 'ebdb-pgp) (add-hook 'mail-send-hook 'ebdb-pgp) (defalias 'ebdb-pgp #[0 "\212\214~\210\306 \210\203\307ed\"\210\310C\311\310\312\313\314\315\316\317\320 !\321\"\322\323%\312\324\325\313\326\327\330\331 \332#\333\"\"\"!\"!\"\206?\n\205?\nC\211\205\231~\210 \310\205\227\211A\262\242\211\262>\203G\211\334=\204k\211\335=\203x\336\337!\203x\f \236A@ \210\310\262\202G\211\340=\204\212\211\341=\203G\336\342!\203G\343\f \2368 \210\310\262\202G\266\202\266\202*\207" [mail-aliases ebdb-pgp-headers ebdb-pgp-default-action ebdb-pgp-ranked-actions ebdb-pgp-method ebdb-pgp-method-alist message-narrow-to-headers expand-mail-aliases nil delq delete-dups mapcar make-byte-code 257 "\300\301\302\"\242\240\205\303\300\242\304\"\207" vconcat vector [ebdb-record-field ebdb-field-pgp slot-value action] 5 "\n\n(fn RECORD)" apply nconc #[257 "\300@A@\"\207" [ebdb-message-search] 4 "\n\n(fn ADDRESS)"] ebdb-extract-address-components mapconcat #[257 "\300!\207" [ebdb-mua-message-header] 3 "\n\n(fn HEADER)"] ", " t sign sign-query y-or-n-p "Sign message? " encrypt encrypt-query "Encrypt message? " 2] 16 (#$ . 5612) nil]) (provide 'ebdb-pgp)