Preview application/pgp-encrypted
Hiroya Murata <[email protected]> Mon, 08 Jan 2007 17:47:07 +0900
| Newsgroups | gmane.mail.wanderlust.general.japanese,gmane.mail.emacs.mime.japanese |
|---|---|
| Message-ID | <uejq5zz04.wl%[email protected]> |
--Multipart_Mon_Jan_08_17:47:07_2007-1 Content-Type: text/plain; charset=ISO-2022-JP $B:#G/$b59$7$/$*4j$$$7$^$9(B. application/pgp-encrypted $B%Q!<%H$N;RMWAG$H$7$F(B mmencrypted $B$J$k(B stub entity $B$r@_Dj$9$k;v$G(B, $B0E9f2=%Q!<%H$r%$%s%i%$%s$GI=<(=PMh$kMM(B $B$K$7$F$_$^$7$?(B. $B%Q%C%A$rE:IU$7$^$9(B. $BI|9f2=$7$?FbMF$O(B, mmexternal $B$KJo$C$F?75,$K%P%C%U%!$r:n$C$FJ];}$9(B $B$kMM$K$7$F$$$^$9(B. Wanderlust $B$G$O(B, $B=*N;;~$K$3$l$i$N%P%C%U%!$b(B ($B6v!9(B $B$G$9$,(B) $B:o=|$5$l$^$9(B. $B<h$j4:$($:(B, $B<B:]$NI|9f=hM}$G(B epg $B$rD>@\8F$s$G$7$^$C$F$$$^$9$,(B, $B8=(B $B:_(B wl-mime.el $B$K$"$k(B pgg $B$H$N%i%C%Q!<It$r(B elmo $B$K0\F0$9$k$+(B, $BI|9f(B $B=hM}H!?t$rJQ?t$H$7$F1w$$$F30It$+$i@_Dj$9$kMM$K$7$h$&$H;W$C$F$$$^$9(B. $B$=$3Kx=PMh$?$i(B commit $B$9$k$D$b$j$G$9(B. ;; Wanderlust $B$N0JA0$N<BAu$G$O(B, $BI=<($@$1$O=PMh$^$7$?$,Cf$KF~$l$^$;(B ;; $B$s$G$7$?(B. -- Hiroya Murata ($BB<ED(B $B9@Li(B) <[email protected]> --Multipart_Mon_Jan_08_17:47:07_2007-1 Content-Type: application/octet-stream; type=patch Content-Disposition: attachment; filename="wl-preivew-pgp.patch" Content-Transfer-Encoding: base64 PyBlbG1vL21tZW5jcnlwdGVkLmVsCkluZGV4OiBXTC1FTFMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2N2cy9yb290L3dhbmRlcmx1c3QvV0wtRUxTLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM2CmRp ZmYgLXUgLXcgLXIxLjM2IFdMLUVMUwotLS0gV0wtRUxTCTE3IFNlcCAyMDA1IDA5OjQzOjI2IC0w MDAwCTEuMzYKKysrIFdMLUVMUwk4IEphbiAyMDA3IDA4OjE5OjU5IC0wMDAwCkBAIC0xNSw3ICsx NSw3IEBACiAgICApKQogCiAoZGVmY29uc3QgRUxNTy1NT0RVTEVTICcoCi0gICB1dGY3IHBsZGFw IGFjYXAgc2xwIG1taW1hcAorICAgdXRmNyBwbGRhcCBhY2FwIHNscCBtbWltYXAgbW1lbmNyeXB0 ZWQKICAgIGVsbW8tc2lnbmFsIGVsbW8tZGF0ZSBlbG1vLXV0aWwgZWxtby12ZXJzaW9uCiAgICBl bG1vLXZhcnMgZWxtbyBlbG1vLW1zZ2RiCiAgICBlbG1vLW5ldCBlbG1vLWltYXA0IGVsbW8tcG9w MyBlbG1vLW5udHAKSW5kZXg6IGVsbW8vZWxtby1taW1lLmVsCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6 IC9jdnMvcm9vdC93YW5kZXJsdXN0L2VsbW8vZWxtby1taW1lLmVsLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjI2CmRpZmYgLXUgLXcgLXIxLjI2IGVsbW8tbWltZS5lbAotLS0gZWxtby9lbG1vLW1p bWUuZWwJMTcgTm92IDIwMDUgMTI6NTA6MjMgLTAwMDAJMS4yNgorKysgZWxtby9lbG1vLW1pbWUu ZWwJOCBKYW4gMjAwNyAwODoxOTo1OSAtMDAwMApAQCAtMTIyLDYgKzEyMiwzNSBAQAogCQkJCQkJ ICZyZXN0IGluaXQtYXJncykKICAgKGx1bmEtY2FsbC1uZXh0LW1ldGhvZCkpCiAKKyhkZWZ1biBl bG1vLW1pbWUtbWFrZS1tdWx0aXBhcnQvZW5jcnlwdGVkLXN0dWIgKGNvbnRyb2wgZGF0YSkKKyAg KHJlcXVpcmUgJ21tZW5jcnlwdGVkKQorICAobHVuYS1tYWtlLWVudGl0eSAnbWltZS1lbmNyeXB0 ZWQtZW50aXR5CisJCSAgICA6bG9jYXRpb24gY29udHJvbAorCQkgICAgOnBhcmVudCBjb250cm9s CisJCSAgICA6bm9kZS1pZCAoY29ucyAwIChtaW1lLWVudGl0eS1ub2RlLWlkIGNvbnRyb2wpKQor CQkgICAgOmRhdGEgZGF0YQorCQkgICAgOmNoaWxkLXR5cGUgJ2VsbW8tYnVmZmVyKSkKKworKGRl ZnVuIGVsbW8tbWltZS1lbnRpdHktc2V0dXAtY2hpbGRyZW4gKGVudGl0eSBjaGlsZHJlbikKKyAg KG1pbWUtZW50aXR5LXNldC1jaGlsZHJlbi1pbnRlcm5hbAorICAgZW50aXR5CisgICAobGV0KiAo KGNvbnRlbnQtdHlwZSAobWltZS1lbnRpdHktY29udGVudC10eXBlIGVudGl0eSkpCisJICAocHJp bWFyeS10eXBlIChtaW1lLWNvbnRlbnQtdHlwZS1wcmltYXJ5LXR5cGUgY29udGVudC10eXBlKSkp CisgICAgICh3aGVuIChhbmQgKGVxIHByaW1hcnktdHlwZSAnbXVsdGlwYXJ0KQorCQkoZXEgKG1p bWUtY29udGVudC10eXBlLXN1YnR5cGUgY29udGVudC10eXBlKSAnZW5jcnlwdGVkKSkKKyAgICAg ICAobWltZS1lbnRpdHktc2V0LWNoaWxkcmVuLWludGVybmFsCisJKGNhciBjaGlsZHJlbikKKwko bGlzdCAoYXBwbHkgIydlbG1vLW1pbWUtbWFrZS1tdWx0aXBhcnQvZW5jcnlwdGVkLXN0dWIgY2hp bGRyZW4pKSkpCisgICAgIGNoaWxkcmVuKSkpCisKKyhsdW5hLWRlZmluZS1tZXRob2QgbWltZS1l bnRpdHktY2hpbGRyZW4gOmFyb3VuZAorICAoKGVudGl0eSBtaW1lLWVsbW8tYnVmZmVyLWVudGl0 eSkpCisgIChlbG1vLW1pbWUtZW50aXR5LXNldHVwLWNoaWxkcmVuIGVudGl0eSAobHVuYS1jYWxs LW5leHQtbWV0aG9kKSkpCisKKyhsdW5hLWRlZmluZS1tZXRob2QgbWltZS1lbnRpdHktY2hpbGRy ZW4gOmFyb3VuZAorICAoKGVudGl0eSBtaW1lLWVsbW8taW1hcC1lbnRpdHkpKQorICAoZWxtby1t aW1lLWVudGl0eS1zZXR1cC1jaGlsZHJlbiBlbnRpdHkgKGx1bmEtY2FsbC1uZXh0LW1ldGhvZCkp KQorCiA7OzsgSW5zZXJ0IHNvcnRlZCBoZWFkZXIuCiAoZGVmc3Vic3QgZWxtby1taW1lLWluc2Vy dC1oZWFkZXItZnJvbS1idWZmZXIgKGJ1ZmZlcgogCQkJCQkgICAgICAgc3RhcnQgZW5kCkluZGV4 OiB3bC93bC1taW1lLmVsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC93YW5kZXJsdXN0 L3dsL3dsLW1pbWUuZWwsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAwCmRpZmYgLXUgLXcgLXIx LjEwMCB3bC1taW1lLmVsCi0tLSB3bC93bC1taW1lLmVsCTcgSmFuIDIwMDcgMTI6MjY6MjcgLTAw MDAJMS4xMDAKKysrIHdsL3dsLW1pbWUuZWwJOCBKYW4gMjAwNyAwODoxOTo1OSAtMDAwMApAQCAt NjY5LDE2ICs2NjksNiBAQAogCSAgIChlbnRpdHktYnV0dG9uIC4gaW52aXNpYmxlKSkKIAkgdG8t YnVmKSkpKSkKIAotKGRlZnVuIHdsLW1pbWUtcHJldmlldy1hcHBsaWNhdGlvbi9wZ3AtZW5jcnlw dGVkIChlbnRpdHkgc2l0dWF0aW9uKQotICAobGV0KiAoKGVudGl0eS1ub2RlLWlkIChtaW1lLWVu dGl0eS1ub2RlLWlkIGVudGl0eSkpCi0JIChtb3RoZXIgKG1pbWUtZW50aXR5LXBhcmVudCBlbnRp dHkpKQotCSAoa251bSAoY2FyIGVudGl0eS1ub2RlLWlkKSkKLQkgKG9udW0gKGlmICg+IGtudW0g MCkKLQkJICAgKDEtIGtudW0pCi0JCSAoMSsga251bSkpKQotCSAob3JpZy1lbnRpdHkgKG50aCBv bnVtIChtaW1lLWVudGl0eS1jaGlsZHJlbiBtb3RoZXIpKSkpCi0gICAgKHdsLW1pbWUtcHJldmll dy1hcHBsaWNhdGlvbi9wZ3AgZW50aXR5IG9yaWctZW50aXR5IHNpdHVhdGlvbikpKQotCiA7Ozsg U3VtbWFyeQogKGRlZnVuIHdsLXN1bW1hcnktYnVyc3Qtc3ViciAobWVzc2FnZS1lbnRpdHkgdGFy Z2V0IG51bWJlcikKICAgOzsgcmV0dXJucyBuZXcgbnVtYmVyLgpAQCAtODY1LDcgKzg1NSw3IEBA CiAgICAnKCh0eXBlIC4gYXBwbGljYXRpb24pKHN1YnR5cGUgLiBwZ3AtZW5jcnlwdGVkKQogICAg ICAoZW5jb2RpbmcgLiB0KQogICAgICAoYm9keSAuIGludmlzaWJsZSkKLSAgICAgKGJvZHktcHJl c2VudGF0aW9uLW1ldGhvZCAuIHdsLW1pbWUtcHJldmlldy1hcHBsaWNhdGlvbi9wZ3AtZW5jcnlw dGVkKQorICAgICAoYm9keS1wcmVzZW50YXRpb24tbWV0aG9kIC4gbWltZS1kaXNwbGF5LW11bHRp cGFydC9taXhlZCkKICAgICAgKG1ham9yLW1vZGUgLiB3bC1vcmlnaW5hbC1tZXNzYWdlLW1vZGUp KSkKIAogICAoY3RyZWUtc2V0LWNhbGlzdC1zdHJpY3RseQo= --Multipart_Mon_Jan_08_17:47:07_2007-1 Content-Type: application/octet-stream; type=emacs-lisp Content-Disposition: attachment; filename="mmencrypted.el" Content-Transfer-Encoding: 7bit ;;; mmencrypted.el --- MIME entity module for encrypeted part ;; Copyright (C) 2007 Hiroya Murata <[email protected]> ;; Author: Hiroya Murata <[email protected]> ;; Keywords: MIME, multimedia, mail, news ;; This file is part of FLIM (Faithful Library about Internet Message). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or (at ;; your option) any later version. ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; ;;; Code: (require 'mmgeneric) (require 'mime) (require 'epg) (eval-and-compile (luna-define-class mime-encrypted-entity (mime-entity) (data decrypted children-type)) (luna-define-internal-accessors 'mime-encrypted-entity)) (luna-define-method mime-entity-name ((entity mime-encrypted-entity)) (mime-entity-name (mime-entity-location-internal entity))) (defun mime-encrypted-entity-decrypt-entity (entity) (or (mime-encrypted-entity-decrypted-internal entity) (with-current-buffer (get-buffer-create (concat " *Body of " (mime-entity-name entity) "*")) (erase-buffer) (mime-insert-entity (mime-encrypted-entity-data-internal entity)) (let ((context (epg-make-context))) (insert (prog1 (decode-coding-string (epg-decrypt-string context (buffer-string)) 'raw-text) (erase-buffer)))) (mime-encrypted-entity-set-decrypted-internal entity (mime-parse-message (mm-expand-class-name (or (mime-encrypted-entity-children-type-internal entity) 'buffer)) nil entity (mime-entity-node-id-internal entity)))))) ;;; @ entity ;;; (luna-define-method mime-insert-entity ((entity mime-encrypted-entity)) (mime-insert-entity (mime-encrypted-entity-decrypt-entity entity))) (luna-define-method mime-write-entity ((entity mime-encrypted-entity) filename) (mime-write-entity (mime-encrypted-entity-decrypt-entity entity) filename)) ;;; @ entity header ;;; ;;; @ entity body ;;; (luna-define-method mime-entity-body ((entity mime-encrypted-entity)) (mime-entity-body (mime-encrypted-entity-decrypt-entity entity))) (luna-define-method mime-insert-entity-body ((entity mime-encrypted-entity)) (mime-insert-entity-body (mime-encrypted-entity-decrypt-entity entity))) (luna-define-method mime-write-entity-body ((entity mime-encrypted-entity) filename) (mime-write-entity-body (mime-encrypted-entity-decrypt-entity entity) filename)) ;;; @ entity content ;;; (luna-define-method mime-entity-content ((entity mime-encrypted-entity)) (mime-entity-content (mime-encrypted-entity-decrypt-entity entity))) (luna-define-method mime-insert-entity-content ((entity mime-encrypted-entity)) (mime-insert-entity-content (mime-encrypted-entity-decrypt-entity entity))) (luna-define-method mime-write-entity-content ((entity mime-encrypted-entity) filename) (mime-write-entity-content (mime-encrypted-entity-decrypt-entity entity) filename)) ;;; @ header field ;;; (luna-define-method mime-entity-fetch-field :around ((entity mime-encrypted-entity) field-name) (or (luna-call-next-method) (mime-entity-fetch-field (mime-encrypted-entity-decrypt-entity entity) field-name))) (luna-define-method mime-insert-header ((entity mime-encrypted-entity) &optional invisible-fields visible-fields) (mime-insert-header (mime-encrypted-entity-decrypt-entity entity) invisible-fields visible-fields)) (luna-define-method mime-entity-children ((entity mime-encrypted-entity)) (mime-entity-children (mime-encrypted-entity-decrypt-entity entity))) ;;; @ end ;; (provide 'mmencrypted) ;;; mmencrypted.el ends here --Multipart_Mon_Jan_08_17:47:07_2007-1--