[mew-dist 27358] Re: マスターパスワード

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2006年 10月 10日 (火) 19:37:44 JST


白井です。

# 遅ればせながら、いろんな機能を使っているところ。

From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [mew-dist 26991] マスターパスワード
Message-ID: <20060523.164252.122215468.kazu at example.com>
Date: Tue, 23 May 2006 16:42:52 +0900 (JST)

> マスターパスワードを実装しました。
> 以下のようにすると、使えます。
> 
> 	(setq mew-use-master-passwd t)

> * Mew の起動時に、~/Mail/.mew-passwd.gpg がある場合は、マスターパスワー
>   ドを訊かれ、それを使って .mew-passwd.gpg を復号化し、メモリー中にキャッ
>   シュします。

ですが、マスタパスワードを聞かれるのを Mew の立ち上がり時ではな
くて、実際にパスワードを使うときにしたいのです。

ぼくは、良く Emacs を

% emacs -f mew -f xxx -f yyy

な感じで起動するのですが、ふと気づくと Mew で止まっちゃっていて、
xxx, yyy が動いていないのでした。ちなみに mew-auto-get => nil で
使っています。

検討よろしくです (__)

-- 
白井秀行 (mailto:shirai at example.com)

Index: mew-passwd.el
===================================================================
RCS file: /cvsmew/mew/mew-passwd.el,v
retrieving revision 1.9
diff -u -r1.9 mew-passwd.el
--- mew-passwd.el	9 Jul 2006 06:13:52 -0000	1.9
+++ mew-passwd.el	10 Oct 2006 10:31:07 -0000
@@ -64,7 +64,12 @@
     (if mew-passwd-timer-id (cancel-timer mew-passwd-timer-id))
     (setq mew-passwd-timer-id
 	  (mew-timer (* mew-passwd-timer-unit 60) 'mew-passwd-timer)))
-  (when (and mew-use-master-passwd (eq mew-pgp-ver 3))
+  (when (and (eq mew-use-master-passwd t) (eq mew-pgp-ver 3))
+    (mew-passwd-setup-master)))
+
+(defun mew-passwd-setup-master ()
+  (when (and (not mew-passwd-master)
+	     mew-use-master-passwd (eq mew-pgp-ver 3))
     (let ((file (expand-file-name mew-passwd-file mew-conf-path)))
       (if (file-exists-p file)
 	  (setq mew-passwd-alist (mew-passwd-load))
@@ -105,15 +110,17 @@
 
 (defun mew-input-passwd (prompt key)
   (if (and key (or mew-use-cached-passwd mew-use-master-passwd))
-      (if (mew-passwd-get-passwd key)
-	  (progn
-	    (mew-timing)
-	    (if mew-passwd-reset-timer (mew-passwd-set-counter key 0))
-	    (mew-passwd-get-passwd key))
-	(let ((pass (mew-read-passwd prompt)))
-	  (mew-passwd-set-passwd key pass)
-	  (mew-passwd-set-counter key 0)
-	  pass))
+      (progn
+	(mew-passwd-setup-master)
+	(if (mew-passwd-get-passwd key)
+	    (progn
+	      (mew-timing)
+	      (if mew-passwd-reset-timer (mew-passwd-set-counter key 0))
+	      (mew-passwd-get-passwd key))
+	  (let ((pass (mew-read-passwd prompt)))
+	    (mew-passwd-set-passwd key pass)
+	    (mew-passwd-set-counter key 0)
+	    pass)))
     (mew-read-passwd prompt)))
 
 (defun mew-read-passwd (prompt)
Index: mew-vars.el
===================================================================
RCS file: /cvsmew/mew/mew-vars.el,v
retrieving revision 1.295
diff -u -r1.295 mew-vars.el
--- mew-vars.el	4 Oct 2006 04:31:46 -0000	1.295
+++ mew-vars.el	10 Oct 2006 10:31:07 -0000
@@ -1625,7 +1625,9 @@
 (defcustom mew-use-master-passwd nil
   "*if non-nil, a master password is used."
   :group 'mew-privacy
-  :type 'boolean)
+  :type '(choice (const :tag "Use master password, asked initializing" t)
+		 (const :tag "Use master password, asked first used" firsttime)
+		 (const :tag "No use master password" nil)))
 
 (defcustom mew-use-8bit nil
   "*If non-nil, the 8bit-clean charset mechanism is used for 8bit



Mew-dist メーリングリストの案内