The following patch allows bbdb-pgp.el to be configured to use
message.el MML tags to perform the signing and encryption, instead of
only plain Mailcrypt which is not MIME-aware.

--- bbdb-pgp.el.orig    2002-10-18 01:03:15.000000000 +0000
+++ bbdb-pgp.el 2002-10-18 04:48:36.000000000 +0000
@@ -105,6 +105,13 @@
 If this field's value in a record is \"encrypt\" then messages are
 encrypted. If it is \"sign\" then messages are signed.")
 
+(defvar bbdb/pgp-method 'mailcrypt
+  "*How to sign or encrypt messages.
+'mailcrypt     means use Mailcrypt.
+'mml-pgp       means add MML tags for Message to use old PGP format
+'mml-pgpmime   means add MML tags for Message to use PGP/MIME
+'mml-smime     means add MML tags for Message to use S/MIME")
+
 (defvar bbdb/pgp-default-action nil
   "*Default action when sending a message and the recipient is not in BBDB.
 nil         means do nothing.
@@ -118,6 +125,36 @@
                   (bbdb-record-getprop record bbdb/pgp-field))))
     pgp))
 
+(defun bbdb/pgp-sign ()
+  "Sign a message.
+bbdb/pgp-method controls the method used."
+  (cond
+   ((eq bbdb/pgp-method 'mailcrypt)
+    (mc-sign 0))
+   ((eq bbdb/pgp-method 'mml-pgp)
+    (mml-secure-message-sign-pgp))
+   ((eq bbdb/pgp-method 'mml-pgpmime)
+    (mml-secure-message-sign-pgpmime))
+   ((eq bbdb/pgp-method 'mml-smime)
+    (mml-secure-message-sign-smime))
+   (t
+    (error 'invalid-state "bbdb/pgp-method"))))
+
+(defun bbdb/pgp-encrypt ()
+  "Encrypt and sign a message.
+bbdb/pgp-method controls the method used."
+  (cond
+   ((eq bbdb/pgp-method 'mailcrypt)
+    (mc-encrypt 0))
+   ((eq bbdb/pgp-method 'mml-pgp)
+    (mml-secure-message-encrypt-pgp))
+   ((eq bbdb/pgp-method 'mml-pgpmime)
+    (mml-secure-message-encrypt-pgpmime))
+   ((eq bbdb/pgp-method 'mml-smime)
+    (mml-secure-message-encrypt-smime))
+   (t
+    (error 'invalid-state "bbdb/pgp-method"))))
+
 (defun bbdb/pgp-hook-fun ()
   "Function to be added to message-send-hook
 Uses PGP to encrypt messages to users marked in the BBDB with the
@@ -137,19 +174,19 @@
            (let ((pgp-p (bbdb/pgp-get-pgp (car address) (car (cdr address)))))
              (cond
               ((string= "encrypt" pgp-p) 
-               (and (y-or-n-p "Encrypt message ? ")
-                    (mc-encrypt 0)))
+               (and (y-or-n-p "Encrypt message? ")
+                    (bbdb/pgp-encrypt)))
               ((string= "sign" pgp-p)
-               (and (y-or-n-p "Sign message ? ")
-                    (mc-sign 0)))
+               (and (y-or-n-p "Sign message? ")
+                    (bbdb/pgp-sign)))
               (t
                (cond
                 ((eq bbdb/pgp-default-action 'encrypt)
-                 (and (y-or-n-p "Encrypt message ? ")
-                      (mc-encrypt 0)))
+                 (and (y-or-n-p "Encrypt message? ")
+                      (bbdb/pgp-encrypt)))
                 ((eq bbdb/pgp-default-action 'sign)
-                 (and (y-or-n-p "Sign message ? ")
-                      (mc-sign 0)))
+                 (and (y-or-n-p "Sign message? ")
+                      (bbdb/pgp-sign)))
                 (t
                  nil))))))))))
 

-- 
Shields.



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/

Reply via email to