Subject: Re: bug#36101: 26.1; epg--status-*SIG does not always precent decode

From: Lars Ingebrigtsen <[email-masked]>
Date: Tue, 22 Oct 2019 16:49:19 +0200

Christophe TROESTLER <[email-masked]> writes:

> I received a message with a S/MIME signature that verified correctly (using gpgsm).  However, the button has undecoded percent escapes.  It turns out that the culprit is the function `epg--status-*SIG' which, when (epg-context-protocol context) is 'CMS and `epg-dn-from-string' triggers an error, does not perform the decoding of percent escapes.
>
> If, in the body of `epg-dn-from-string', one changes
>
> 	(condition-case nil
> 	    (if (eq (epg-context-protocol context) 'CMS)
> 		(setq user-id (epg-dn-from-string user-id))
> 	      (setq user-id (epg--decode-percent-escape user-id)))
> 	  (error))
>
> into
>
> 	(condition-case nil
> 	    (if (eq (epg-context-protocol context) 'CMS)
> 		(setq user-id (epg-dn-from-string user-id)))
> 	  (error))
> 	(setq user-id (epg--decode-percent-escape user-id))
>
> it works (provided http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36098 has been fixed first).  I do not think `epg--decode-percent-escape' can trigger `error' but it is protected everywhere it is used so maybe one should write

Do you have an example here to display the bug?

(epg-dn-from-string "CN=Steve Kille,O=Isode Limited,C=GB")
=> (("CN" . "Steve Kille") ("O" . "Isode Limited") ("C" . "GB"))

so we can't run the output of that from epg--decode-percent-escape.  So
in your case, what are the parameters to epg--status-*SIG?  I.e., the
STRING?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no