pinentry-mac does not escape the PIN in INQUIRE QUALITY messages to the client. It should.
Observed with:
$ pinentry-mac --version pinentry-mac (pinentry) 1.1.1 Copyright (C) 2016 g10 Code GmbH License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
To reproduce:
- Run pinentry-mac.
- Enable the quality bar by sending the SETQUALITYBAR message.
- Request a PIN by sending the GETPIN message.
- Enter a single % character in the PIN prompt.
- Observe that pinentry-mac sends "INQUIRE QUALITY %" to the client. It should escape the % and instead send "INQUIRE QUALITY %25".
Transcript:
$ pinentry-mac OK Pleased to meet you SETQUALITYBAR OK GETPIN INQUIRE QUALITY %