[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

No Subject



-----BEGIN PGP SIGNED MESSAGE-----




I suppose this should be added to the the ftp site on soda.


		-Pete

-----BEGIN PGP SIGNATURE-----
Version: 2.3

iQBVAgUBLDyRNHynuL1gkffFAQGWigH6A6/aLAoAtJElN++r0qyMyD+aWQTVr7FH
gGb8C+4wNozzPAmr+wIpN0oBW7Cti7U1+G4oOW+FMQKdOljAyLJxQA==
=cinp
-----END PGP SIGNATURE-----

;;
;; 
;; From: [email protected] (Michael P. Frank)
;; A quick summary:
;; 
;; Key	  Command name		Notes
;; -------	  ------------------	----------------
;; C-c p e   pgp-encrypt-region	Prompts for recipient's ID.
;; C-c p d pgp-decrypt-region	The first time, prompts for your pass phrase.
;; C-c p s	  pgp-sign-region	       Ditto. Uses CLEARSIG.
;; C-c p S	  pgp-sign-and-encrypt-region  Doesn't use CLEARSIG. Encrypts also.
;; C-c p v	  pgp-verify-region	       Checks signature (in a new window).
;; C-c p p	  pgp-set-passphrase	Sets or changes PGP pass phrase.
;; C-c p c	  pgp-clear-passphrase	Erases pass phrase.
;; 
;; Thanks are due to Bob Anderson <[email protected]> for
;; writing a very helpful explanation of how to do the guts of these
;; commands.  However, any bugs are my own.
;; 
;; Enjoy!
;; 
;; -Mike
;; 
;;;
;;; Emacs Support for PGP
;;;
;;; People can see your PGP passphrase if:
;;; * They watch over your shoulder as you type it. (It's not invisible.)
;;; * They do "ps auxww" (SunOS) on your machine while you're
;;;     decrypting/signing.
;;; * They type C-h v *pgp-passphrase* in your emacs after you've
;;;     entered your passphrase.
;;;
;;; Plus the system suffers from all the normal Unix and X-windows
;;; security holes.
;;; 

(defun pgp-set-passphrase (arg)
  "Prompts for PGP pass phrase."
  (interactive "sPGP pass phrase: ")
  (setq *pgp-passphrase* arg))

(defun pgp-clear-passphrase ()
  "Clears the PGP pass phrase."
  (interactive)
  (makunbound '*pgp-passphrase*))

(defun pgp-encrypt-region (start end pgp-user-id &optional flag)
  "Encrypt the region using PGP. Prompts for a PGP user ID.
With prefix arg, puts result in serparate window.
Noninteractive args are START, END, PGP-USER-ID, and optional FLAG."
  (interactive "r\nsUser ID to encrypt to: \nP")
  (shell-command-on-region start end (concat "pgp -fea " pgp-user-id)
			   (not flag)))

(defun pgp-decrypt-region (start end &optional flag)
  "Decrypt the region using PGP. Prompts for the user's pass phrase,
if not already known.  With prefix arg, puts result in separate window.
Noninteractive args are START and END and optional FLAG."
  (interactive "r\nP")
  (if (not (boundp '*pgp-passphrase*))
      (call-interactively 'pgp-set-passphrase))
  (shell-command-on-region start end
			   (concat "pgp -f -z \"" *pgp-passphrase*
				   "\"")
			   (not flag)))

(defun pgp-sign-and-encrypt-region (start end pgp-user-id &optional flag)
  "Sign and encrypt the region using PGP. Prompts for a user to
encrypt to and a pass phrase, if not already known.
With prefix arg puts result in separate window. 
Noninteractive args are START, END, and PGP-USER-ID, and optional FLAG."
  (interactive "r\nsUser ID to encrypt to: \nP")
  (if (not (boundp '*pgp-passphrase*))
      (call-interactively 'pgp-set-passphrase))
  (shell-command-on-region start end (concat "pgp -safe " pgp-user-id
					     " -z \"" *pgp-passphrase*
					     "\"") (not flag)))

(defun pgp-sign-region (start end &optional flag)
  "Sign the region using PGP. Prompts for a pass phrase, if not already
Known. With prefix arg puts result in separate window.
Noninteractive args are START and END and optional FLAG."
  (interactive "r\nP")
  (if (not (boundp '*pgp-passphrase*))
      (call-interactively 'pgp-set-passphrase))
  (shell-command-on-region start end (concat "pgp -saft +clearsig=on"
					     " -z \"" *pgp-passphrase* "\"")
			   (not flag)))

(defun pgp-verify-region (start end)
  "Verify the signature on the text in the given region using PGP."
  (interactive "r")
  (shell-command-on-region start end "pgp -f"))

(global-set-key "\C-cpp" 'pgp-set-passphrase)
(global-set-key "\C-cpc" 'pgp-clear-passphrase)
(global-set-key "\C-cpe" 'pgp-encrypt-region)
(global-set-key "\C-cpd" 'pgp-decrypt-region)
(global-set-key "\C-cps" 'pgp-sign-region)
(global-set-key "\C-cpS" 'pgp-sign-and-encrypt-region)
(global-set-key "\C-cpv" 'pgp-verify-region)