Hi! On Fri, 19 May 2023 17:38, Robert Irelan said:
> This is the command line that seems to hang with 2.4.1: > > ``` > /opt/local/bin/gpg2 --no-tty --status-fd 1 --yes > --enable-progress-filter --command-fd 0 --output > /var/folders/gc/73c5zcp918z9dssx8k1sybh00000gn/T/epg-output2zVC4K > --pinentry-mode ask --decrypt -- > /var/folders/gc/73c5zcp918z9dssx8k1sybh00000gn/T/epg-inputMnF1UG > ``` Here are two places which do not look correct: (defun epg-wait-for-completion (context) "Wait until the `epg-gpg-program' process completes." (while (eq (process-status (epg-context-process context)) 'run) (accept-process-output (epg-context-process context) 1)) ;; This line is needed to run the process-filter right now. (sleep-for 0.1) Sleeping for 100ms looks like an error prone hack. (defun epg-start-decrypt (context cipher) [...] ;; `gpgsm' does not read passphrase from stdin, so waiting is not needed. (unless (eq (epg-context-protocol context) 'CMS) (epg-wait-for-status context '("BEGIN_DECRYPTION")))) It is quite possible that BEGIN_DECRYPTION is emitted after the request for a pinentry. It does not look right to wait for it. I have not looked into the EasyPG code for many years despite that I am using it every day. The use of --command-fd w/o a state machine (or is there one for decrypt?) to handle the requests is not a good idea;; using --batch would be better. Please also see https://dev.gnupg.org/T6481 which is about a very similar problem. Salam-Shalom, Werner -- The pioneers of a warless world are the youth that refuse military service. - A. Einstein
openpgp-digital-signature.asc
Description: PGP signature
_______________________________________________ Gnupg-users mailing list Gnupg-users@gnupg.org https://lists.gnupg.org/mailman/listinfo/gnupg-users