| From: | Jacob Champion <pchampion(at)vmware(dot)com> |
|---|---|
| To: | "daniel(at)yesql(dot)se" <daniel(at)yesql(dot)se> |
| Cc: | "hlinnaka(at)iki(dot)fi" <hlinnaka(at)iki(dot)fi>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, "andrew(dot)dunstan(at)2ndquadrant(dot)com" <andrew(dot)dunstan(at)2ndquadrant(dot)com>, "sfrost(at)snowman(dot)net" <sfrost(at)snowman(dot)net>, "thomas(dot)munro(at)gmail(dot)com" <thomas(dot)munro(at)gmail(dot)com>, "michael(at)paquier(dot)xyz" <michael(at)paquier(dot)xyz>, "andres(at)anarazel(dot)de" <andres(at)anarazel(dot)de> |
| Subject: | Re: Support for NSS as a libpq TLS backend |
| Date: | 2021-02-02 00:42:23 |
| Message-ID: | 51a7390523d3b2047ffd635e64dc5676f57dfbc7.camel@vmware.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Mon, 2021-02-01 at 21:49 +0100, Daniel Gustafsson wrote:
> > On 29 Jan 2021, at 19:46, Jacob Champion <pchampion(at)vmware(dot)com> wrote:
> > I think the bad news is that the static approach will need support for
> > ENABLE_THREAD_SAFETY.
>
> I did some more reading today and noticed that the NSS documentation (and their
> sample code for doing crypto without TLS connections) says to use NSS_NoDB_Init
> to perform a read-only init which don't require a matching close call. Now,
> the docs aren't terribly clear and also seems to have gone offline from MDN,
> and skimming the code isn't entirelt self-explanatory, so I may well have
> missed something. The v24 patchset posted changes to this and at least passes
> tests with decent performance so it seems worth investigating.
Nice! Not having to close helps quite a bit.
(Looks like thread safety for NSS_Init was added in 3.13, so we have an
absolute version floor.)
> > (It looks like the NSS implementation of pgtls_close() needs some thread
> > support too?)
>
> Storing the context in conn would probably be better?
Agreed.
> > The good(?) news is that I don't understand why OpenSSL's
> > implementation of cryptohash doesn't _also_ need the thread-safety
> > code. (Shouldn't we need to call CRYPTO_set_locking_callback() et al
> > before using any of its cryptohash implementation?) So maybe we can
> > implement the same global setup/teardown API for OpenSSL too and not
> > have to one-off it for NSS...
>
> No idea here, wouldn't that impact pgcrypto as well in that case?
If pgcrypto is backend-only then I don't think it should need
multithreading protection; is that right?
--Jacob
| From | Date | Subject | |
|---|---|---|---|
| Next Message | tsunakawa.takay@fujitsu.com | 2021-02-02 00:44:35 | RE: Commitfest 2021-01 is now closed. |
| Previous Message | Jacob Champion | 2021-02-02 00:16:47 | Re: Proposal: Save user's original authenticated identity for logging |