;; -*- emacs-lisp -*- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; $Id: gnus_gpg.el,v 1.5 2006-11-06 21:02:42 rscholz Exp $ ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Interne GPG/PGP/SMIME-Unterstützung von Gnus ;; ;; Die offizielle Quelle dieser Datei ist ;; <http://www.zonix.de/projects/emacs/config> ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; PGP(/MIME) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; PGG benutzen (ab Gnus 5.10) (setq mml2015-use 'pgg) (setq mml1991-use 'pgg) ;; gpg.el benutzen (aufgrund von Copyright-Problemen nicht bei Gnus ;; 5.10 dabei) ;(setq mml2015-use 'gpg) ;(setq mml1991-use 'gpg) ;; MailCrypt benutzen ;(setq mml2015-use 'mailcrypt) ;(setq mml1991-use 'mailcrypt) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; PGG (neues Crypto-Interface ab Gnus 5.10) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; PGG soll GnuPG verwenden (setq pgg-default-scheme 'gpg) (setq pgg-scheme 'gpg) ;; immer auch mit meinem Public-Key verschlüsseln (setq pgg-encrypt-for-me t) ;; meine Key-ID (if (string-match "\\.zonix\\.de" system-name) (setq pgg-default-user-id "F0311FD8")) (if (string-match "\\.verified\\.de" system-name) (setq pgg-default-user-id "5159191E")) ;; Keyserver abfragen ;(setq pgg-query-keyserver t) ;(setq pgg-default-keyserver-address "wwwkeys.de.pgp.net") ;; Passphrase 5 min merken (setq pgg-passphrase-cache-expiry 300) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Anzeige von Nachrichten (Info-goto-node "(Gnus)Security") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; nur auf Anfrage verifizieren / entschluesseln (setq mm-verify-option 'never) (setq mm-decrypt-option 'never) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Erstellen von Nachrichten (Info-goto-node "(Message)Security") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Bei PGP(/MIME) soll "in einem Rutsch" signiert und verschlüsselt ;; werden. (setq mml-signencrypt-style-alist '(("smime" separate) ("pgp" combined) ("pgpmime" combined))) ;; Default beim Verschlüsseln und Signieren ist PGP/MIME (setq mml-default-encrypt-method "pgpmime") (setq mml-default-sign-method "pgpmime") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Anzeige-Optionen ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Security-Buttons anzeigen (setq gnus-buttonized-mime-types '("multipart/encrypted" "multipart/signed")) ;;Inline-Anzeige von application/pgp (add-to-list 'mm-inlined-types "application/pgp$") (add-to-list 'mm-automatic-display "application/pgp$") (add-to-list 'mm-inline-media-tests '("application/pgp$" mm-inline-text identity)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Nützliche Funktionen ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; <#part encrypt=pgpmime sender="you@home" recipients="someone@somewhere"> ;; automatisch signieren (defun zsh/mml-pgp-sign-automatically () (interactive) (message-goto-body) (if (save-excursion (re-search-forward "<#\\(/\\)?\\(multipart\\|part\\|external\\|mml\\)." nil t)) (insert "<#multipart sign=pgpmime>\n") (insert "<#part sign=pgpmime>\n"))) ;(add-hook 'message-send-hook 'zsh/mml-pgp-sign-automatically) ;; andere Möglichkeit, automatisch zu signieren ;;(add-hook 'gnus-message-setup-hook 'mml-secure-sign-pgpmime) ;; und noch eine Möglichkeit ;; (add-hook 'message-setup-hook ;; (lambda () ;; (when (string-match "nnml:mail\\.signed-only" gnus-newsgroup-name) ;; (mml-secure-message-sign-pgpmime)))) ; fix parsing of GnuPG output (if gpg.el not loaded) (setq gpg-unabbrev-trust-alist '(("TRUST_UNDEFINED" . trust-undefined) ("TRUST_NEVER" . trust-none) ("TRUST_MARGINAL" . trust-marginal) ("TRUST_FULLY" . trust-full) ("TRUST_ULTIMATE" . trust-ultimate))) ;; X-Request-PGP-Header anklickbar machen ;; Reiner Steib in <v9u13sy5u7.fsf@marauder.physik.uni-ulm.de> (defun rs-gnus-handle-request-pgp (url) "Fetch PGP key from URL" (with-temp-buffer (mm-url-insert-file-contents-external url) (pgg-snarf-keys-region (point-min) (point-max)))) (add-to-list 'gnus-header-button-alist '("^X-Request-PGP:" gnus-button-url-regexp 0 t rs-gnus-handle-request-pgp 0) t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; gpg.el (liegt im contrib-Verzeichnis von No Gnus) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (add-to-list 'load-path (concat zonix-elisp-dir "gnus/contrib")) (if (string-match "\\.zonix\\.de" system-name) (setq gpg-default-key-id "F0311FD8")) (if (string-match "\\.verified\\.de" system-name) (setq gpg-default-key-id "5159191E")) (setq gpg-passphrase-timeout 900) (setq gpg-temp-directory "~/.gnupg/tmp/")