On 18/04/2014 9:40 a.m., Alex Rousskov wrote: > On 04/17/2014 02:19 PM, Amos Jeffries wrote: >> On 17/04/2014 6:56 a.m., Alex Rousskov wrote: >>> On 04/16/2014 07:44 AM, Amos Jeffries wrote: >>>> + // x509 certificate credentials >>>> + gnutls_certificate_credentials_t certCredentials; >>> >>> client or server certificate credentials? I assume it is the latter but: >>> >> >> Everything in this is client oriented since "squidclient" is a client. > > Not really. The certificate that squidclient is validating is the server > certificate. The CA used to validate that certificate is also likely to > be server-, not client-specific. > > You do not have to change any of this -- I am just indicating likely > confusing places for other folks who would have to deal with this code. > This is purely based on the experience dealing with similar Squid code > where it was difficult to understand which end of the transaction the > code is manipulating (leading to such bugs as client descriptor used in > server descriptor context, for example). > > >>>> + << " --tls [TLS options] Use TLS on the connection" << >>>> std::endl >>>> + << std::endl >>>> + << " TLS options:" << std::endl >>>> + << " --anonymous Use Anonymous TLS." << std::endl >>> >>> AFAICT, the new code allows squidclient to establish a secure connection > >>> The connection can be encrypted using SSL or TLS, depending on >>> various factors, right? If yes, please make the new option name >>> protocol-neutral (e.g., --secure) so that the tool user does not have to >>> lookup new (to them) protocol abbreviations or change their scripts as >>> protocol names change. >> >> Yes... >> >> The prime factor being that one endpoint uses the *TLS* mechanism to >> negotiate use of SSL/3.0 format messaging. > > AFAICT, the vast majority of users do not care whether it is a TLS or > SSL or some FutureProtocolLayer mechanism. They just need what they call > a "secure connection" or "SSL connection". We can fight the established > terminology among our users, but I do not think this particular issue is > worth the fight. > > Curl uses "--ssl" for this. I know you are not a big fan of "SSL" so I > proposed "secure" as a more neutral and still commonly understood > replacement. Wget is using --secure-protocol. Both popular tools support > SSL and TLS, of course. > > >> "secure" would be lying since "--secure --anonymous" then means >> *insecure* as do various cipher settings, none of which are failures cases. > > There is no single word that can describe all the nuances of a complex > setup. "--tls" is as misleading as "--secure" when squidclient ends up > not using TLS despite --tls on the command line. "Secure" is what our > tool users understand to be related to "that SSL stuff". Those advanced > users that use --anonymous option or custom cyphers are far less likely > to misinterpret --secure. > > >> "Transport Security" is the most accurate descriptive term. > > We need an option name. I doubt "--transport-security" is better than > "--secure" but it is your call. And if you still insist that "--tls" is > the best name, then so be it. I am glad I helped fix a bug, but fighting > over a squidclient option name is not worth our time IMO. > > > Cheers, > > Alex. >
Thank you for the time. I have polished up, re-tested, and applied the patch to trunk. Amos