Annotation of pgp/contrib/emacs/pgp.el2, revision 1.1

1.1     ! root        1: Newsgroups: alt.security.pgp
        !             2: From: [email protected] (Michael P. Frank)
        !             3: Subject: Here's a simple Emacs interface to PGP 2.1. (w. bug fix)
        !             4: Organization: MIT Laboratory for Computer Science
        !             5: Distribution: alt
        !             6: Date: Tue, 2 Mar 1993 23:14:16 GMT
        !             7: 
        !             8: (This supersedes an earlier posting that had inconsistent function names
        !             9: due to some last-minute changes.)
        !            10: 
        !            11: Hi, PGP fans.
        !            12: 
        !            13: Below are some new emacs commands I wrote, for using PGP 2.1 to easily
        !            14: encrypt/decrypt/sign/verify regions of text under GNU emacs.  Perhaps
        !            15: this has already been done, but I haven't seen it anywhere.
        !            16: 
        !            17: To use a command, select a region of text to manipulate, then execute
        !            18: the command.  The region of text will be passed as input to pgp with
        !            19: the appropriate options, and pgp's output will appear in its place.
        !            20: (Unwanted parts of this output, such as PGP status information, can
        !            21: usually be easily deleted by hand.) If you make a mistake you can
        !            22: always undo the operation (with C-_, C-x u, or M-x undo).  If you
        !            23: precede a command with C-u, the output will go to a separate emacs
        !            24: window instead of replacing the input text.
        !            25: 
        !            26: A quick summary:
        !            27: 
        !            28: Key      Command name          Notes
        !            29: -------          ------------------    ----------------
        !            30: C-c p e   pgp-encrypt-region   Prompts for recipient's ID.
        !            31: C-c p d          pgp-decrypt-region    The first time, prompts for your pass phrase.
        !            32: C-c p s          pgp-sign-region              Ditto. Uses CLEARSIG.
        !            33: C-c p S          pgp-sign-and-encrypt-region  Doesn't use CLEARSIG. Encrypts also.
        !            34: C-c p v          pgp-verify-region            Checks signature (in a new window).
        !            35: C-c p p          pgp-set-passphrase    Sets or changes PGP pass phrase.
        !            36: C-c p c          pgp-clear-passphrase  Erases pass phrase.
        !            37: 
        !            38: Thanks are due to Bob Anderson <[email protected]> for
        !            39: writing a very helpful explanation of how to do the guts of these
        !            40: commands.  However, any bugs are my own.
        !            41: 
        !            42: Enjoy!
        !            43: 
        !            44: -Mike
        !            45: 
        !            46: ---------------- program starts here ---------------
        !            47: ;;;
        !            48: ;;; Emacs Support for PGP
        !            49: ;;;
        !            50: ;;; People can see your PGP passphrase if:
        !            51: ;;; * They watch over your shoulder as you type it. (It's not invisible.)
        !            52: ;;; * They do "ps auxww" (SunOS) on your machine while you're
        !            53: ;;;     decrypting/signing.
        !            54: ;;; * They type C-h v *pgp-passphrase* in your emacs after you've
        !            55: ;;;     entered your passphrase.
        !            56: ;;;
        !            57: ;;; Plus the system suffers from all the normal Unix and X-windows
        !            58: ;;; security holes.
        !            59: ;;; 
        !            60: 
        !            61: (defun pgp-set-passphrase (arg)
        !            62:   "Prompts for PGP pass phrase."
        !            63:   (interactive "sPGP pass phrase: ")
        !            64:   (setq *pgp-passphrase* arg))
        !            65: 
        !            66: (defun pgp-clear-passphrase ()
        !            67:   "Clears the PGP pass phrase."
        !            68:   (interactive)
        !            69:   (makunbound *pgp-passphrase*))
        !            70: 
        !            71: (defun pgp-encrypt-region (start end pgp-user-id &optional flag)
        !            72:   "Encrypt the region using PGP. Prompts for a PGP user ID.
        !            73: With prefix arg, puts result in serparate window.
        !            74: Noninteractive args are START, END, PGP-USER-ID, and optional FLAG."
        !            75:   (interactive "r\nsUser ID to encrypt to: \nP")
        !            76:   (shell-command-on-region start end (concat "pgp -fea " pgp-user-id)
        !            77:                           (not flag)))
        !            78: 
        !            79: (defun pgp-decrypt-region (start end &optional flag)
        !            80:   "Decrypt the region using PGP. Prompts for the user's pass phrase,
        !            81: if not already known.  With prefix arg, puts result in separate window.
        !            82: Noninteractive args are START and END and optional FLAG."
        !            83:   (interactive "r\nP")
        !            84:   (if (not (boundp '*pgp-passphrase*))
        !            85:       (call-interactively 'pgp-set-passphrase))
        !            86:   (shell-command-on-region start end
        !            87:                           (concat "pgp -f -z \"" *pgp-passphrase*
        !            88:                                   "\"")
        !            89:                           (not flag)))
        !            90: 
        !            91: (defun pgp-sign-and-encrypt-region (start end pgp-user-id &optional flag)
        !            92:   "Sign and encrypt the region using PGP. Prompts for a user to
        !            93: encrypt to and a pass phrase, if not already known.
        !            94: With prefix arg puts result in separate window. 
        !            95: Noninteractive args are START, END, and PGP-USER-ID, and optional FLAG."
        !            96:   (interactive "r\nsUser ID to encrypt to: \nP")
        !            97:   (if (not (boundp '*pgp-passphrase*))
        !            98:       (call-interactively 'pgp-set-passphrase))
        !            99:   (shell-command-on-region start end (concat "pgp -safe " pgp-user-id
        !           100:                                             " -z \"" *pgp-passphrase*
        !           101:                                             "\"") (not flag)))
        !           102: 
        !           103: (defun pgp-sign-region (start end &optional flag)
        !           104:   "Sign the region using PGP. Prompts for a pass phrase, if not already
        !           105: Known. With prefix arg puts result in separate window.
        !           106: Noninteractive args are START and END and optional FLAG."
        !           107:   (interactive "r\nP")
        !           108:   (if (not (boundp '*pgp-passphrase*))
        !           109:       (call-interactively 'pgp-set-passphrase))
        !           110:   (shell-command-on-region start end (concat "pgp -saft +clearsig=on"
        !           111:                                             " -z \"" *pgp-passphrase* "\"")
        !           112:                           (not flag)))
        !           113: 
        !           114: (defun pgp-verify-region (start end)
        !           115:   "Verify the signature on the text in the given region using PGP."
        !           116:   (interactive "r")
        !           117:   (shell-command-on-region start end "pgp -f"))
        !           118: 
        !           119: (global-set-key "\C-cpp" 'pgp-set-passphrase)
        !           120: (global-set-key "\C-cpc" 'pgp-clear-passphrase)
        !           121: (global-set-key "\C-cpe" 'pgp-encrypt-region)
        !           122: (global-set-key "\C-cpd" 'pgp-decrypt-region)
        !           123: (global-set-key "\C-cps" 'pgp-sign-region)
        !           124: (global-set-key "\C-cpS" 'pgp-sign-and-encrypt-region)
        !           125: (global-set-key "\C-cpv" 'pgp-verify-region)
        !           126: --
        !           127:    , ,                       __               MIT Lab for Computer Science
        !           128:   /|/| .  _ |_   _   _  |   |_  _  _  ,_  |,  [email protected]
        !           129:  / | | | (_ | | (_| (-' |   |  |  (_| | | |\  (Finger for PGP Public Key)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.