;ELC   
;;; Compiled
;;; in Emacs version 26.3
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\"\210\304\307\306\"\210\300\310!\210\311\312\313\314\315\316\317\320&\207" [require smime mm-decode mml-sec autoload message-narrow-to-headers "message" message-fetch-field epg custom-declare-variable mml-smime-use 'epg "Whether to use OpenSSL or EasyPG (EPG) to handle S/MIME messages.\nIf you're thinking about using OpenSSL, please first read the BUGS section\nin the manual for the `smime' command that comes with OpenSSL.\nWe recommend EasyPG." :group mime-security :type (choice (const :tag "EPG" epg) (const :tag "OpenSSL" openssl))] 8)
(defvar mml-smime-function-alist '((openssl mml-smime-openssl-sign mml-smime-openssl-encrypt mml-smime-openssl-sign-query mml-smime-openssl-encrypt-query mml-smime-openssl-verify mml-smime-openssl-verify-test) (epg mml-smime-epg-sign mml-smime-epg-encrypt nil nil mml-smime-epg-verify mml-smime-epg-verify-test)))
(byte-code "\300\301\302\303\304\305\306\307&\210\310\301\302\311#\210\300\312\313\314\304\305\306\315&\210\310\312\313\311#\210\300\316\317\320\304\305\306\321&\210\300\322\317\323\304\305\324\325\306\307&	\210\300\326\317\327\304\305\324\325\306\307&	\207" [custom-declare-variable mml-smime-cache-passphrase mml-secure-cache-passphrase "If t, cache passphrase." :group mime-security :type boolean make-obsolete-variable "25.1" mml-smime-passphrase-cache-expiry mml-secure-passphrase-cache-expiry "How many seconds the passphrase is cached.\nWhether the passphrase is cached at all is controlled by\n`mml-smime-cache-passphrase'." integer mml-smime-signers nil "A list of your own key ID which will be used to sign a message." (repeat (string :tag "Key ID")) mml-smime-sign-with-sender "If t, use message sender so find a key to sign with." :version "24.4" mml-smime-encrypt-to-self "If t, add your own key ID to recipient list when encryption."] 10)
(defalias 'mml-smime-sign #[(cont) "	\236A@\211\203 \n!\202 \304\305!)\207" [mml-smime-use mml-smime-function-alist func cont error "Cannot find sign function"] 3])
(defalias 'mml-smime-encrypt #[(cont) "\304	\2368\211\203 \n!\202 \305\306!)\207" [mml-smime-use mml-smime-function-alist func cont 2 error "Cannot find encrypt function"] 4])
(defalias 'mml-smime-sign-query #[nil "\303	\2368\211\205\f \n )\207" [mml-smime-use mml-smime-function-alist func 3] 4])
(defalias 'mml-smime-encrypt-query #[nil "\303	\2368\211\205\f \n )\207" [mml-smime-use mml-smime-function-alist func 4] 4])
(defalias 'mml-smime-verify #[(handle ctl) "\305	\2368\211\203 \n\f\"\202 )\207" [mml-smime-use mml-smime-function-alist func handle ctl 5] 4])
(defalias 'mml-smime-verify-test #[(handle ctl) "\305	\2368\211\205 \n\f\")\207" [mml-smime-use mml-smime-function-alist func handle ctl 6] 4])
(defalias 'mml-smime-openssl-sign #[(cont) "\204\f \302\300!\210\303\304!\210\305\306	\236A!\210eb\210\307\310\311\312#\203' \313\314\312\211#\210\202 db\207" [smime-keys cont customize-variable error "No S/MIME keys configured, use customize to add your key" smime-sign-buffer keyfile search-forward "\n" nil t replace-match "\n"] 4])
(defalias 'mml-smime-openssl-encrypt #[(cont) "\306\211\211\211\211\211A\242\211\203( \n:\203\n \n@\307=\203\n \nA\fB\202\n \f\211A\242\211\203c \310\n!\204> \311\n!\204E \nB\202( \312\313\314\"!r\nq\210\315ed	#\210)	B	B\202( \316!\203z \211A\242\211\203\213 \317\n!\210\202i \211A\242\211\203\213 \317\n!\210\202z -db\207" [tmpfiles file tmp certfiles certnames cont nil certfile file-exists-p get-buffer make-temp-file expand-file-name "mml." write-region smime-encrypt-buffer delete-file mm-tmp-directory] 5])
(defalias 'mml-smime-openssl-sign-query #[nil "\204\f \302\300!\210\303\304!\210\305G\306U\203 @A@\202N \307\212\214\310 \210\311\312!*\206) \313!A@\211\2054 \314	!)\206N \314\315\316\317\320\"\321\211\211\242<\205K @@&!D\207" [smime-keys from customize-variable error "No S/MIME keys configured, use customize to add your key" keyfile 1 mail-extract-address-components message-narrow-to-headers message-fetch-field "from" "" smime-get-key-by-email gnus-completing-read "Sign this part with what signature" mapcar car nil] 10])
(defalias 'mml-smime-get-file-cert #[nil "\3011 \302\303\304\305\306\307%D0\207\210\305\207" [smime-certificate-directory (error) certfile read-file-name "File with recipient's S/MIME certificate: " nil t ""] 7])
(defalias 'mml-smime-get-dns-cert #[nil "\304\211\211\211\3051K ?\205G \306\307\310	\206 \311\"\312\212\214\313 \210\314\315!*\206( \311!A@\"\316\n!\211\203? \317\320!D\211\202 \321\322\n\"\202\f 0\202O \210\202P \210,\207" [cert bad who result nil (quit) read-from-minibuffer format "%sLookup certificate for: " "" mail-extract-address-components message-narrow-to-headers message-fetch-field "to" smime-cert-by-dns certfile buffer-name format-message "`%s' not found. "] 6])
(defalias 'mml-smime-get-ldap-cert #[nil "\305\211\211\211\3061K ?\205G \307\310\311	\206 \312\"\f\212\214\313 \210\314\315!*\206( \312!A@\"\316\n!\211\203? \317\320!D\211\202 \321\322\n\"\202\f 0\202O \210\202P \210,\207" [cert bad who result gnus-extract-address-components nil (quit) read-from-minibuffer format "%sLookup certificate for: " "" message-narrow-to-headers message-fetch-field "to" smime-cert-by-ldap certfile buffer-name format-message "`%s' not found. "] 6])
(autoload 'gnus-completing-read "gnus-util")
(defalias 'mml-smime-openssl-encrypt-query #[nil "\303\211\204T \304\305\306\307\310\303\211\311&!\312\n\313\"\203$ \314	\315 \"\202J \312\n\316\"\2034 \314	\317 \"\202J \312\n\320\"\203D \314	\321 \"\202J \322\323\n\324#\210)\325\326!?\211\203 	*\207" [done certs #1=#:temp nil read gnus-completing-read "Fetch certificate from" ("dns" "ldap" "file") t "ldap" eql dns append mml-smime-get-dns-cert ldap mml-smime-get-ldap-cert file mml-smime-get-file-cert error "cl-ecase failed: %s, %s" (dns ldap file) y-or-n-p "Add more recipients? "] 9])
(defalias 'mml-smime-openssl-verify #[(handle ctl) "\306\307!rq\210\310\216\311\312\313\314	@#!\210eb\210\315\316	\211@;\203% \n@\202) \nA@@)\"c\210\315\317\312\313\320	@#\"c\210\315\321\312\313\322	@#\"c\210\315\323\312\313\324	@#\"c\210\325!\203X \326!\210p\327 \f\204c \205e \330 \331\211<=>?@rq\210\332 )<?\204\274 A\333\334BC\211\205\230 \335\313\n@GCB\n@%+\210A\336\337\340<QBC\211\205\267 \335\313\n@GCB\n@%+\210\202\264\341ed\"\203\342ed\"\203\306\307!DrDq\210\343\216\311@!\210eb\210\344\345\331\346#\203\376 \347e`\"\203\367 \350\351e`\"=\"=e`|\210\202\336 \352\353=\"=+\312\313\354	@#\206\355\227=\235\2045A\333\356BC\211\2050\335\313\n@GCB\n@%+\210\202s>\203XA\333\357BC\211\205S\335\313\n@GCB\n@%+\210\202sA\333\360BC\211\205q\335\313\n@GCB\n@%+\210A\336\361\312\313\354	@#\362=\203\216\363\364\365=\366#P\202\217\367\362\211\370\371<\362\372\373\332 \362\260BC\211\205\262\335\313\n@GCB\n@%+\210.\n\207" [#1=#:temp-buffer ctl handle smime-details-buffer smime-CA-file smime-CA-directory generate-new-buffer " *temp*" #[nil "\301!\205	 \302!\207" [#1# buffer-name kill-buffer] 2] insert-buffer-substring get-text-property 0 buffer format "Content-Type: %s; " "protocol=\"%s\"; " protocol "micalg=\"%s\"; " micalg "boundary=\"%s\"\n\n" boundary get-buffer kill-buffer smime-noverify-buffer smime-verify-buffer nil buffer-string gnus-info "Failed" put-text-property gnus-details "OpenSSL failed to verify message integrity:\n" "-------------------------------------------\n" smime-pkcs7-region smime-pkcs7-certificates-region #[nil "\301!\205	 \302!\207" [#2=#:temp-buffer buffer-name kill-buffer] 2] re-search-forward "-----END CERTIFICATE-----" t smime-pkcs7-email-region append smime-buffer-as-string-region mapcar downcase from "" "Sender address forged" "Ok (sender authenticated)" "Ok (sender not trusted)" "Sender claimed to be: " "\n" "Addresses in certificate: " mapconcat identity ", " "No addresses found in certificate. (Requires OpenSSL 0.9.6 or later.)" "OpenSSL output:\n" "---------------\n" "Certificate(s) inside S/MIME signature:\n" "---------------------------------------\n" openssl-output addresses good-certificate good-signature buf mm-security-handle value parameter #2#] 17])
(defalias 'mml-smime-openssl-verify-test #[(handle ctl) "\207" [smime-openssl-program] 1])
(autoload 'mml-compute-boundary "mml")
(defalias 'mml-smime-epg-sign #[(cont) "\306\307!eb\210\310\311\"\211@A\312\313	\"c\210\203) \312\314\236A\227\"c\210\315c\210\312\316	\"c\210db\210\312\316	\"c\210\317c\210\320\f!\321\261\210db\210\312\322	\"c\210db-\207" [cont boundary inhibit-redisplay pair signature micalg t mml-compute-boundary mml-secure-epg-sign CMS format "Content-Type: multipart/signed; boundary=\"%s\";\n" "	micalg=%s; " "protocol=\"application/pkcs7-signature\"\n" "\n--%s\n" "Content-Type: application/pkcs7-signature; name=smime.p7s\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment; filename=smime.p7s\n\n" base64-encode-string "\n" "--%s--\n" epg-digest-algorithm-alist] 5])
(defalias 'mml-smime-epg-encrypt #[(cont) "\304\305	!\306\307	\"ed|\210eb\210\310c\210\311!c\210db+\207" [inhibit-redisplay cont boundary cipher t mml-compute-boundary mml-secure-epg-encrypt CMS "Content-Type: application/pkcs7-mime;\n smime-type=enveloped-data;\n name=smime.p7m\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment; filename=smime.p7m\n\n" base64-encode-string] 3])
(defalias 'mml-smime-epg-verify #[(handle ctl) "\3062\307\310\211\211\211\211\311%\312\313\314%@#\206 \315\307#\211\203= \316&A\315\310\307$\2068 \316&A\317\310\307$\211\204a '\320\321()\211&\205Y \322\313&@G)(&@%+\210\323\306&\"\210\324\325\326	#\327\330!\3311| \332\f\333!	#\2110\202\355 '\320\334()\211&\205\232 \322\313&@G)(&@%+\210@\335=\203\305 '\336\337()\211&\205\300 \322\313&@G)(&@%+\210\202\347 '\336\340\341\"()\211&\205\345 \322\313&@G)(&@%+\210\323\306&\")\210'\320\342\343\f\344\"!()\211&\205\322\313&@G)(&@%+\210&.0\207" [signature part signature-file plain context inhibit-redisplay error t nil mm-find-raw-part-by-type get-text-property 0 protocol "application/pkcs7-signature" mm-find-part-by-type "application/x-pkcs7-signature" gnus-info "Corrupted" put-text-property throw replace-regexp-in-string "\n" "\n" epg-make-context CMS (error) epg-verify-string mm-get-part "Failed" quit gnus-details "Quit." format "%S" epg-verify-result-to-string epg-context-result-for verify ctl handle mm-security-handle value parameter] 7])
(defalias 'mml-smime-epg-verify-test #[(handle ctl) "\300\207" [t] 1])
(provide 'mml-smime)
