;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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar pinentry--server-process nil) (defvar pinentry--connection-process-list nil) (defvar pinentry--labels nil) (put 'pinentry-read-point 'permanent-local t) (defvar pinentry--read-point nil) (put 'pinentry--read-point 'permanent-local t) #@101 The directory in which to place the server socket. If local sockets are not supported, this is nil. (defvar pinentry--socket-dir (byte-code "\300\301\302\303!\206 \304\305 #\207" [format "%s/emacs%d" getenv "TMPDIR" "/tmp" user-uid] 4) (#$ . 651)) (defconst pinentry--set-label-commands '("SETPROMPT" "SETTITLE" "SETDESC" "SETREPEAT" "SETREPEATERROR" "SETOK" "SETCANCEL" "SETNOTOK")) #@13 (fn CODE) (defalias 'pinentry--error-code '(macro . #[257 "\300\301\302\303\"\"\207" [logior lsh 5 24] 5 (#$ . 1042)])) (defconst pinentry--error-not-implemented (cons 83886149 "not implemented")) (defconst pinentry--error-cancelled (cons 83886179 "cancelled")) (defconst pinentry--error-not-confirmed (cons 83886194 "not confirmed")) (autoload 'server-ensure-safe-dir "server") #@155 Start a Pinentry service. Once the environment is properly set, subsequent invocations of the gpg command will interact with Emacs for passphrase input. (defalias 'pinentry-start #[0 "\303\304\305\"\204 \306\307!\210\310!\203\311\312!\207\313\314 \"\315 !\210\3161+\317\320!)0\202/\210\2020\210\304\321\314\322\323\324\323\325\326\327\330\331\332\333\334\335&\336\337#\207" [pinentry--server-process pinentry--socket-dir delete-by-moving-to-trash featurep make-network-process (:family local) error "local sockets are not supported" process-live-p message "Pinentry service is already running" expand-file-name "pinentry" server-ensure-safe-dir (error) nil delete-file :name :server t :noquery :sentinel pinentry--process-sentinel :filter pinentry--process-filter :coding no-conversion :family local :service process-put :server-file] 18 (#$ . 1431) nil]) #@26 Stop a Pinentry service. (defalias 'pinentry-stop #[0 "\302!\203\n\303!\210\304 \211\203(\211@\305\306!!\203!\307\306!!\210A\266\202\202 \210\304\211\207" [pinentry--server-process pinentry--connection-process-list process-live-p delete-process nil buffer-live-p process-buffer kill-buffer] 5 (#$ . 2309) nil]) #@63 Convert strings in LABEL by stripping mnemonics. (fn LABELS) (defalias 'pinentry--labels-to-shortcuts #[257 "\300\301\"\207" [mapcar #[257 "\211\205L\300\301\302\"\203'\303\304\"\211\305H\227\262\306\307\310\311#\312\211$\262\210\2028G\305U\2032\313\2026\305H\227\262\301\314\"\203G\306\315\312\211$\262\211B\262\207" [nil string-match "\\(?:\\`\\|[^_]\\)_\\([[:alnum:]]\\)" match-string 1 0 replace-match propertize face underline t 63 "__" "_"] 8 "\n\n(fn LABEL)"]] 4 (#$ . 2637)]) #@58 Escape STRING in the Assuan percent escape. (fn STRING) (defalias 'pinentry--escape-string #[257 "\211G\300\211W\203H\301>\203\211T\262T\262\202\300\262\302\303_\\\300\"\300\304W\203tH\262\211\305>\203d\306\307\"\310I\210T\262\300HI\210T\262\311HI\210T\262\210\202mI\210T\262T\262\202*\266\203\207" [0 (10 13 37) make-string 2 nil (10 13 37) format "%02X" 37 1] 12 (#$ . 3150)]) #@60 Unescape STRING in the Assuan percent escape. (fn STRING) (defalias 'pinentry--unescape-string #[257 "\211G\300\301\300\"\300\302W\203OH\262\211\303=\203?\304\\W\203?\305T\306\\O\307\"I\210T\262\304\\\262\202HI\210T\262T\262\202 \300O\266\203\207" [0 make-string nil 37 2 string-to-number 3 16] 13 (#$ . 3586)]) #@149 Send a string ESCAPED to a process PROCESS. ESCAPED will be split if it exceeds the line length limit of the Assuan protocol. (fn PROCESS ESCAPED) (defalias 'pinentry--send-data #[514 "\211G\300\300U\203\301\302\"\202H\211W\205HZ\303^\211\\O\304\300\305\306\307!\310\"\311$\216\301\312\"\210\301\"\210\301\313\"\210)\\\266\203\202\207" [0 process-send-string "D \n" 997 make-byte-code "\301\300!\207" vconcat vector [clear-string] 2 "D " "\n"] 12 (#$ . 3940)]) #@22 (fn PROCESS ERROR) (defalias 'pinentry--send-error #[514 "\300\301\302@A#\"\207" [process-send-string format "ERR %d %s\n"] 8 (#$ . 4432)]) #@22 (fn PROCESS INPUT) (defalias 'pinentry--process-filter #[514 "\306\307!!\204*\310\311!\312\"\210r\211q\210\313\314!\203\314\315!\210\316\300!\210e\316\302!\210)\210r\307!q\210\212db\210\211c\210b\210\317 \210\320\321!\205\311\320\322!\203=\323\324!\325\323\326!!\211 \235\262\203\230G\327V\203\203\330\331\315O\227!\211\n\236\332\333\"\203{\241\210\202\201B\nB\266\3341\217\335\336\"0\202\223\210\202\224\210\210\202\277\337\232\203\262\3401\252\335\336\"0\202\256\210\202\277\210\202\277\341\232\203m\342\n\236A\206\307\343\n\236A\206\307\344\345\n\236??\315\346\n\236\211\262\203\344\347\350\351A!\352\346#\353R\262\354\n\236\211\262\203\365\355\356A#\262\357\360\"\203\327\211\224O\361P\262\315C\315C\315C\362\327\363\364\365#\366\"\326$\216\3671R\370\"\240\210\371\242!\240\210\211\372\242\333\"\240\210\3731L\374\n\242\"\210\335\n\336\"0\202N\210\3150\202b\210\3751`\376\n \"0\202b\210\315\210)\266\315\266\202\277\377\232\203\254\342\n\236A\206{\344\201@\201A\n\236A\201B\n\236A\201C\n\236AE!\315\346\n\236\211\262\203\252\347\350\351A!\352\346#\353R\262\354\n\236\211\262\203\273\355\356A#\262\201D\315\"\203P\201E\201F\201G\201D\315\"\201H#\201IR\262\201J1:\201K!\211@@=\203\201L1\335\336\"0\2024\210\315\2024\211A@@=\203#\201M1\376\f\"0\2024\210\315\2024\201N12\376 \"0\2024\210\315\2620\202L\210\201O1J\376 \"0\202L\210\315\210\202\245\357\201P\"\203d\327\211\224O\201QP\262\201R1s\201S!0\202w\210\202\221\203\221\201T1\211\335\336\"0\202\215\210\202\245\210\202\245\201U1\240\376\f\"0\202\244\210\202\245\210\315\266\202\277\201V1\272\376 \"0\202\276\210\202\277\210\315y\210`\266\202=*\207" [pinentry--read-point pinentry--set-label-commands pinentry--labels pinentry--error-cancelled pinentry--error-not-confirmed pinentry--error-not-implemented buffer-live-p process-buffer generate-new-buffer " *pinentry*" set-process-buffer fboundp set-buffer-multibyte nil make-local-variable beginning-of-line looking-at ".*\n" "\\([A-Z_]+\\) ?\\(.*\\)" match-string 1 pinentry--unescape-string 2 0 intern 3 decode-coding-string utf-8 (error) process-send-string "OK\n" "NOP" (error) "GETPIN" desc prompt "" repeat error "Error: " propertize copy-sequence face "\n" title format "[%s] %s" string-match ":?[ \n]*\\'" ": " make-byte-code "\300\242\203\n\303\300\242!\210\301\242\203\303\301\242!\210\302\242\205\303\302\242!\207" vconcat vector [clear-string] (error) read-passwd pinentry--escape-string encode-coding-string (error) pinentry--send-data (error) pinentry--send-error "CONFIRM" pinentry--labels-to-shortcuts ok notok cancel remq " (" mapconcat cdr ", " ") " (error) read-char (error) (error) (error) (error) "[ \n]*\\'" " " (quit) y-or-n-p (error) (error) (error)] 18 (#$ . 4583)]) #@73 The process sentinel for Emacs server connections. (fn PROCESS STATUS) (defalias 'pinentry--process-sentinel #[514 "\301!\302=\203(\303!\203(B\304\305\"\210\3061#\307\310\"0\202'\210\202(\210\311\312\"\204J\301!\313=\203J\314\315!!\203E\316\315!!\210\317\"\311\312\"\205g\301!\313=\205g\3201e\321\322\323\"!0\207\210\305\207" [pinentry--connection-process-list process-status open process-query-on-exit-flag set-process-query-on-exit-flag nil (error) process-send-string "OK Your orders please\n" process-contact :server closed buffer-live-p process-buffer kill-buffer delq (error) delete-file process-get :server-file] 6 (#$ . 7482)]) (provide 'pinentry)