Re: weird libpq GSSAPI comment

Stephen Frost <[email protected]>
Newsgroups gmane.comp.db.postgresql.devel.general
Message-ID <[email protected]>
Greetings,

* Robbie Harwood ([email protected]) wrote:
> Alvaro Herrera <[email protected]> writes:
> 
> > How about this?
> >
> >                  * If GSSAPI is enabled and we can reach a credential cache,
> >                  * set up a handle for it; if it's operating, just send a
> >                  * GSS startup message, instead of the SSL negotiation and
> >                  * regular startup message below.
> 
> Due to the way postgres handled this historically, there are two ways
> GSSAPI can be used: for connection encryption, and for authentication
> only.  We perform the same dance of sending a "request packet" for
> GSSAPI encryption as we do for TLS encryption.  So I'd like us to be
> precise about which one we're talking about here (encryption).

Alright, that's fair.

> The GSSAPI idiom I should have used is "can acquire credentials" (i.e.,
> instead of "can reach a credential cache" in your proposal).

Ok.

> There's no such thing as a "GSS startup message".  After negotiating
> GSSAPI/TLS encryption (or failing to do so), we send the same things in
> all cases, which includes negotiation of authentication mechanism if
> any.  (Negotiating GSSAPI for authentication after negotiating GSSAPI
> for encryption will short-circuit rather than establishing a second
> context, if I remember right.)

Yes, you can see that around src/backend/libpq/auth.c:538 where we skip
straight to pg_GSS_checkauth() if we already have encryption up and
running, and if we don't then we go through pg_GSS_recvauth() (which
will eventually call pg_GSS_checkauth() too).

> I wonder if part of the confusion might be due to the synonyms we're
> using here for "in use".  Things seem to be "got running", "set up",
> "operating", "negotiated", ... - maybe that's part of the barrier to
> understanding?

How about something like this?

 * If GSSAPI Encryption is enabled, then call pg_GSS_have_cred_cache()
 * which will return true if we can acquire credentials (and give us a
 * handle to use in conn->gcred), and then send a packet to the server
 * asking for GSSAPI Encryption (and skip past SSL negotiation and
 * regular startup below).

Thanks,

Stephen
signature.asc (application/pgp-signature, 819 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCgAGBQJeE6CaAAoJEO1sijiDR2RVXqsP/3evv/mB6PYferdjPPMmkC/Q
Dpf6nqCFRi1/4ivRGGprMVTwPFtL1ioPT3/Lud+WJg3aal8QnWwt+XQAyl2D8HDv
uhgKZqTvSrG663MElZtQeFU22+r3ymi1pqGwWQDC7Nmi02zyVMkbzu0w857/0a5v
X3UovP6EnBmAcgM8jZzYa72YbUaZ9ot0tmpxSuVdUg9yDKgsvhIUG9He210q6QaW
NHFEkXuaIPOC2oidP/9wtoLfBTWXGWZeutzxOEKm5cOIOLfII+FWOhQovxe/4it3
prhlNVN+oiecq0zmAsgVmFfmsW/AJnhu/l6zTO3M8anTqkKpCOGxqlccqAVIvHNL
dDV2hJNLfeZnRjC0Rw5dQccvtksVxH7/Xxd25zvLP4bmdrNjKWnfKapF1n6RW9jq
jxRmome2PtvbAb0gitAOtv5sl7bJmM/BXmaIv/KrXwLoCOfui4MoZBLGNren386O
6PvS5VceegIhZM3y/EKf/0rCPzex806HbgdWHCdA2ZvXjYKmc24BKianSs2asq5R
pCQyPuBNtqO/UX3YaLKhvNF+HXykdHxr8OqwRVCRYl7gyjfW8Dgk/08fp0W3b2r0
9H5oeCUD1iOSxgBqTH267RkIBuRZ3wvjaZ/6kNKWpUz7R6u0NUsP3gboL8wVtXaU
9630l42JpZgPJ35HmvXw
=boWm
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.