On Fri, Aug 9, 2019 at 8:15 PM Thiago Macieira <thi...@kde.org> wrote: > > On Thursday, 8 August 2019 12:00:34 PDT Franklin, Jason wrote: > > However, after trying several invocations, I can't get the tool to behave as > > expected (i.e., take a password on stdin and exit with 0/1 on success/ > > failure). > > That's because the tool does not take the password on stdin. > > $ /usr/lib64/libexec/kcheckpass > Only binary protocol supported > > You need to pass a file descriptor number with the -S option.
This is what I discovered when trying it myself. This means that the commentary in the code for kcheckpass is way out of sync with the actual behavior of the tool. I think this should be fixed, and I'd be willing to help. I'm also curious, why doesn't the following work? echo -n 'test' | /usr/lib64/libexec/kcheckpass -S 0 I get "Communication breakdown on write". Seems like passing to stdin with file descriptor 0 should work. > kcheckpass.c also makes debugging difficult, by setting a bunch of options to > prevent unauthorised attaching to the process. You need to modify the source > to turn those off. I really appreciate your response and the tip you provided here. I'll do my best to investigate further. However, I've noticed that this process is not well-documented at all. The README file included with kcheckpass isn't very helpful in guiding someone to debugging the code. Also, installing a Debian dbgsym package doesn't seem to be sufficient, as you noted here. I'd be very willing to help with this, but the package maintainers haven't responded to my query yet. I submitted the bug report below: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934185 I'm still hoping to hear back! -- JF