On 26.06.2017 12:38, Troy A. Griffitts wrote: > I'm certainly willing to add a compile flag to enable/disable > self-signed certs. I'm also willing to make this a runtime option for > the client of the library.
Beware that the user prompt you added to utilities/installmgr.cpp in SVN 3485 ("Added configurable parameter in InstallMgr.conf, UnverifiedPeerAllowed=true|false") is rather insecure: cout << "Would you like to allow unverified peers? [yes] "; char prompt[10]; fgets(prompt, 9, stdin); allowed = (strcmp(prompt, "no\n")); cout << "\n"; If the user types "No", "NO" or " no" or "no " the variable allowed gets set to true. I'd use something like !strcmp(prompt, "YES\n") instead to be on the safer side. To be even more safe, only "YES" or "NO" should be allowed as valid inputs, and if the user enters something else, the prompt should be retried instead. Additionally, if the user enters a long string, only part of it is consumed by fgets and the rest is left in the input buffer (to be consumed by some next fgets call?). Best regards, J PS: I think you can pass size 10 instead of 9 to fgets. PPS: Please consider using an enum instead of a bool for such variables. They usually have the same size anyway, because enums usually have sizeof(int) and so do bools on most platforms. As opposed to createBasicBuffer(ENABLE_REMOTE, CROSSWIRE_REMOTE, ALLOW_UNVERIFIED_TLS_PEERS); stuff like createBasicConfig(true, false, false); is really cryptic, and the reader must jump through an extra hoop to understand the exact semantics of such function calls. PPPS: I'm not going to merge that into Sword++. _______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page