Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vEBkv-006tmc-7h for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Oct 2025 19:22:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vEBku-003N8W-4n for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Oct 2025 19:22:47 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vEBkt-003N8O-QA for pgsql-hackers@lists.postgresql.org; Wed, 29 Oct 2025 19:22:46 +0000 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vEBkq-004w6n-0y for pgsql-hackers@postgresql.org; Wed, 29 Oct 2025 19:22:46 +0000 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-47114a40161so2018875e9.3 for ; Wed, 29 Oct 2025 12:22:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761765763; x=1762370563; darn=postgresql.org; h=user-agent:mime-version:date:autocrypt:to:from:subject:message-id :from:to:cc:subject:date:message-id:reply-to; bh=+ZviERQ3isK9pGu1T/5i3dtWXRASDfWkpaaTDx+3qUk=; b=V7zpKeeCBlcC1Yab1T90jki+jEIfl4eScyX4tvttF8hkFoY8MtjmQ5vnzDr6gA08+8 dOJIYxSkw+5XjYaoy2PVFUbvTIRKTOJKTwlMRwdm+z1hqgcA+2vfLGc/4VJq1VxiHYQk nA0nW6PdRn5E29uppXeehsqvBpIXPHuOM5IQlkI84mEwvpOflhuWA2HCL9ZbA8+YUdTu SJwYyp3p0Tzzq1KNE/2bXpDdVhSbdI+mY1QJvxyi3A7KzRzGU/AV2XGN8hVvEXlgTMcK opFEtzzF6DB32SehmFsS4PHNUT0op3pFdwnaraAIekcpvx//pwAW5SL8vQYJk+5vjSd/ M+JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761765763; x=1762370563; h=user-agent:mime-version:date:autocrypt:to:from:subject:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+ZviERQ3isK9pGu1T/5i3dtWXRASDfWkpaaTDx+3qUk=; b=PzUfVk13cnxzr9thdSs3uHTQAO9HbkOlwA58INwZfp4FMMkhpmSejEwbod8NqOz6by uSNy0BKGhI4vmBrqCCfzLvXCLQZJLvRn1gN0A20biOOEwMIMno6hY3K9dSB3m6fD6R4e iBFdTslCxfsXpfYu9hXRntBVc0sRCQ+WafbkA199LIaXJBKSs/tlsuGUoNzXezxfidps e20pUKikce+rmYKpllNySHROypmndDnjIHKszbHs3EdWYUBnaUkdWUozG1A3ZzLAy7sT BsiVmuoAw5ImYsLAFSKvxXIgrychdO/Ph4h9fVwgjoHSg81RmkIiMmLpC/nvSxH9JkIg wlEQ== X-Gm-Message-State: AOJu0YyoEjjz9AIvotvoYxrZHmuT9b+/CvRcF4ceLeV0kfslLF4p4Kmp HEvW6hpTAs62mmSStnmW7Orf4Lc8beUA6VuVCQ930xnzZe6pGKRtR/slTDxX03SPww== X-Gm-Gg: ASbGncuNFLDB7MwbSvqPIWe2RDVn08UkjPlQZV9ekqm1HG4RJKsECmci8aey2AU1GAx rgcFCDaxZBasOLwtJerJKE3G+qgUJzEIK3dJegUPjV87km+Tq4cemxF2MPoJ8vH7SPLb5mUvRiM pBpF9RFR6h9XTsiel5gMgbu1ZfWnuLNqvVWvtbK4FHi9LwMlkxdfIztvxPCaIPAP89utsOczfC3 NSnlS7OlY0CSPYScZNVKoeEMdG+PWee76I8N9WMq3cjSsjlTd5urSQK7JnMwUaRdSIGgUWcDmO5 ibA/A2IJwH89S0lagIJsWDFXHjcWVN+Cv+bsU3sXBmFsFFTc2bGGKjnTx/z2mULM9QATyRNrfrj 35//qlVZtWrsbt3LUMz+7MZhElO4Go86fOR5L7tNQMA6W4Ft8Th/XOvrp5qQYrnMgGg6yTOGtFq PxA1m4g3XIdaYrUCx2+Ixw4HllG0/FRDEP4xlkbgPkMR5HBt+1ioclKq0tPfNbWD0FyLjKi2FU6 enQIZ2XKcH4q88= X-Google-Smtp-Source: AGHT+IGKuqiBGUuXnE+nMvsRRK2Pfxy557JJG1U2S7D3mIAlpcZz/TYqs7MNlMHupa0vtxXZv9u2pA== X-Received: by 2002:a05:600c:34cf:b0:475:de14:db25 with SMTP id 5b1f17b1804b1-4771e3b8455mr45365635e9.28.1761765762893; Wed, 29 Oct 2025 12:22:42 -0700 (PDT) Received: from ?IPv6:2a00:6d43:908:5800:68c2:ecbe:88b8:3ac2? ([2a00:6d43:908:5800:68c2:ecbe:88b8:3ac2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-477184251c4sm53489975e9.1.2025.10.29.12.22.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 12:22:41 -0700 (PDT) Message-ID: <16a91d02795cb991963326a902afa764e4d721db.camel@gmail.com> Subject: Make PGOAUTHCAFILE in libpq-oauth work out of debug mode From: "Jonathan Gonzalez V." To: pgsql-hackers@postgresql.org Autocrypt: addr=jonathan.abdiel@gmail.com; prefer-encrypt=mutual; keydata=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 oQ0KXJ6d0Ud8Vdn/b0A== Content-Type: multipart/mixed; boundary="=-FxdxmQ7FfqcWf7vSrEiE" Date: Wed, 29 Oct 2025 20:19:49 +0100 MIME-Version: 1.0 User-Agent: Evolution 3.56.2-4 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-FxdxmQ7FfqcWf7vSrEiE Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable Hi, While working on a validator for keycloak[1] with libpq-oauth I find out that to allow a self-signed certificated I had to set the CA on the client but for this was required to also set the PGOAUTHDEBUG=3DUNSAFE which generated a lot of information on the client side that I didn't need for my testing and work. This patch basically remove the need of setting the PGOAUTHDEBUG=3DUNSAFE to be able to use PGOAUTHCAFILE. I'm not sure if where I put the documentation is the right place, I would like to have some opinions on that matter too. [1] https://github.com/cloudnative-pg/postgres-keycloak-oauth-validator --=20 Jonathan Gonzalez V. --=-FxdxmQ7FfqcWf7vSrEiE Content-Disposition: attachment; filename*0=v1-0001-libpq-oauth-allow-changing-the-CA-when-not-in-deb.pat; filename*1=ch Content-Type: text/x-patch; name="v1-0001-libpq-oauth-allow-changing-the-CA-when-not-in-deb.patch"; charset="ISO-8859-1" Content-Transfer-Encoding: base64 RnJvbSBiMzJhMWFkOTNmOTMzZmEzMTlmZjI5ZTE1Mjk5NjU5ZDY3ZGU0ZDIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSm9uYXRoYW4gR29uemFsZXogVi4iIDxqb25hdGhhbi5hYmRp ZWxAZ21haWwuY29tPgpEYXRlOiBXZWQsIDI5IE9jdCAyMDI1IDE2OjU0OjQyICswMTAwClN1Ympl Y3Q6IFtQQVRDSCB2MSAxLzFdIGxpYnBxLW9hdXRoOiBhbGxvdyBjaGFuZ2luZyB0aGUgQ0Egd2hl biBub3QgaW4gZGVidWcKIG1vZGUKCkFsbG93aW5nIHRvIHNldCBhIENBIGVuYWJsZXMgdXNlcnMg ZW52aXJvbm1lbnQgbGlrZSBjb21wYW5pZXMgd2l0aAppbnRlcm5hbCBDQSBvciBkZXZlbG9wZXJz IHdvcmtpbmcgb24gdGhlaXIgb3duIGxvY2FsIHN5c3RlbSB3aGlsZQp1c2luZyBhIHNlbGYtc2ln bmVkIENBIGFuZCBkb24ndCBuZWVkIHRvIHNlZSBhbGwgdGhlIGRlYnVnIG1lc3NhZ2VzCndoaWxl IHRlc3RpbmcgaW5zaWRlIGFuIGludGVybmFsIGVudmlyb25tZW50LgoKU2lnbmVkLW9mZi1ieTog Sm9uYXRoYW4gR29uemFsZXogVi4gPGpvbmF0aGFuLmFiZGllbEBnbWFpbC5jb20+Ci0tLQogZG9j L3NyYy9zZ21sL2xpYnBxLnNnbWwgICAgICAgICAgICAgICAgIHwgMjMgKysrKysrKysrKysrKysr KystLS0tLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLWN1cmwuYyB8IDIwICsr KysrKystLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDE5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9j L3NyYy9zZ21sL2xpYnBxLnNnbWwKaW5kZXggNWJmNTlhMTk4NTUuLmMzZmU5ZDU0NzhhIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbGlicHEu c2dtbApAQCAtMTA1MjAsMTIgKzEwNTIwLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgUEdvYXV0aEJlYXJl clJlcXVlc3QKICAgICAgICBwZXJtaXRzIHRoZSB1c2Ugb2YgdW5lbmNyeXB0ZWQgSFRUUCBkdXJp bmcgdGhlIE9BdXRoIHByb3ZpZGVyIGV4Y2hhbmdlCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlz dGl0ZW0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJhPgotICAgICAgIGFsbG93cyB0aGUg c3lzdGVtJ3MgdHJ1c3RlZCBDQSBsaXN0IHRvIGJlIGNvbXBsZXRlbHkgcmVwbGFjZWQgdXNpbmcg dGhlCi0gICAgICAgPGVudmFyPlBHT0FVVEhDQUZJTEU8L2VudmFyPiBlbnZpcm9ubWVudCB2YXJp YWJsZQotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgogICAgICA8bGlzdGl0ZW0+CiAg ICAgICA8cGFyYT4KICAgICAgICBwcmludHMgSFRUUCB0cmFmZmljIChjb250YWluaW5nIHNldmVy YWwgY3JpdGljYWwgc2VjcmV0cykgdG8gc3RhbmRhcmQKQEAgLTEwNTQ3LDYgKzEwNTQxLDIzIEBA IHR5cGVkZWYgc3RydWN0IFBHb2F1dGhCZWFyZXJSZXF1ZXN0CiAgICAgPC9wYXJhPgogICAgPC93 YXJuaW5nPgogICA8L3NlY3QyPgorICA8c2VjdDIgaWQ9ImxpYnBxLW9hdXRoLWVudmlyb25tZW50 Ij4KKyAgIDx0aXRsZT5FbnZpcm9ubWVudCB2YXJpYWJsZXM8L3RpdGxlPgorICAgPHBhcmE+Cisg ICAgVGhlIGJlaGF2aW9yIG9mIHRoZSBPQXV0aCBjYWxscyBtYXkgYmUgYWZmZWN0ZWQgYnkgdGhl IGZvbGxvd2luZyB2YXJpYWJsZXM6CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgIDx0ZXJtPjxlbnZhcj5QR09BVVRIQ0FGSUxFPC9lbnZhcj48L3Rlcm0+Cisg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEFsbG93cyB0byBzcGVjaWZ5 IHRoZSBwYXRoIHRvIGEgQ0EgZmlsZSB0aGF0IHdpbGwgYmUgdXNlZCBieSB0aGUgY2xpZW50Cisg ICAgICAgIHRvIHZlcmlmeSB0aGUgY2VydGlmaWNhdGUgZnJvbSB0aGUgT0F1dGggc2VydmVyIHNp ZGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50 cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3BhcmE+CisgIDwvc2VjdDI+CiAgPC9zZWN0 MT4KIAogCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJs LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmMKaW5kZXggYWE1MGIw MGQwNTMuLmIyN2EyNjljOTYyIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0 aC9vYXV0aC1jdXJsLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtY3Vy bC5jCkBAIC0xNzA0LDYgKzE3MDQsOCBAQCBkZWJ1Z19jYWxsYmFjayhDVVJMICpoYW5kbGUsIGN1 cmxfaW5mb3R5cGUgdHlwZSwgY2hhciAqZGF0YSwgc2l6ZV90IHNpemUsCiBzdGF0aWMgYm9vbAog c2V0dXBfY3VybF9oYW5kbGVzKHN0cnVjdCBhc3luY19jdHggKmFjdHgpCiB7CisJY29uc3QgY2hh ciAqZW52OworCiAJLyoKIAkgKiBDcmVhdGUgb3VyIG11bHRpIGhhbmRsZS4gVGhpcyBlbmNhcHN1 bGF0ZXMgdGhlIGVudGlyZSBjb252ZXJzYXRpb24gd2l0aAogCSAqIGxpYmN1cmwgZm9yIHRoaXMg Y29ubmVjdGlvbi4KQEAgLTE3OTIsMjAgKzE3OTQsMTIgQEAgc2V0dXBfY3VybF9oYW5kbGVzKHN0 cnVjdCBhc3luY19jdHggKmFjdHgpCiAJfQogCiAJLyoKLQkgKiBJZiB3ZSdyZSBpbiBkZWJ1ZyBt b2RlLCBhbGxvdyB0aGUgZGV2ZWxvcGVyIHRvIGNoYW5nZSB0aGUgdHJ1c3RlZCBDQQotCSAqIGxp c3QuIEZvciBub3csIHRoaXMgaXMgbm90IHNvbWV0aGluZyB3ZSBleHBvc2Ugb3V0c2lkZSBvZiB0 aGUgVU5TQUZFCi0JICogbW9kZSwgYmVjYXVzZSBpdCdzIG5vdCBjbGVhciB0aGF0IGl0J3MgdXNl ZnVsIGluIHByb2R1Y3Rpb246IGJvdGggbGlicHEKLQkgKiBhbmQgdGhlIHVzZXIncyBicm93c2Vy IG11c3QgdHJ1c3QgdGhlIHNhbWUgYXV0aG9yaXphdGlvbiBzZXJ2ZXJzIGZvcgotCSAqIHRoZSBm bG93IHRvIHdvcmsgYXQgYWxsLCBzbyBhbnkgY2hhbmdlcyB0byB0aGUgcm9vdHMgYXJlIGxpa2Vs eSB0byBiZQotCSAqIGRvbmUgc3lzdGVtLXdpZGUuCisJICogQWxsb3cgdG8gY2hhbmdlIHRoZSB0 cnVzdGVkIENBIGV2ZW4gaWYgd2UncmUgbm90IGluIGRlYnVnIG1vZGUsIHRoaXMgaGVscAorCSAq IHRvIG1ha2UgaXQgZWFzeSB0byB3b3JrIG9uIGVudmlyb25tZW50cyB3ZXJlIHRoZSBDQSBjb3Vs ZCBpbnRlcm5hbCBhbmQKKwkgKiBub3QgYXZhaWxhYmxlIG9uIGV2ZXJ5IHN5c3RlbSwgbGlrZSBi aWcgY29tcGFuaWVzIHdpdGggYWlyZ2FwIHN5c3RlbXMuCiAJICovCi0JaWYgKGFjdHgtPmRlYnVn Z2luZykKLQl7Ci0JCWNvbnN0IGNoYXIgKmVudjsKLQotCQlpZiAoKGVudiA9IGdldGVudigiUEdP QVVUSENBRklMRSIpKSAhPSBOVUxMKQotCQkJQ0hFQ0tfU0VUT1BUKGFjdHgsIENVUkxPUFRfQ0FJ TkZPLCBlbnYsIHJldHVybiBmYWxzZSk7Ci0JfQorCWlmICgoZW52ID0gZ2V0ZW52KCJQR09BVVRI Q0FGSUxFIikpICE9IE5VTEwpCisJCUNIRUNLX1NFVE9QVChhY3R4LCBDVVJMT1BUX0NBSU5GTywg ZW52LCByZXR1cm4gZmFsc2UpOwogCiAJLyoKIAkgKiBTdXBwcmVzcyB0aGUgQWNjZXB0IGhlYWRl ciB0byBtYWtlIG91ciByZXF1ZXN0IGFzIG1pbmltYWwgYXMgcG9zc2libGUuCi0tIAoyLjUxLjAK Cg== --=-FxdxmQ7FfqcWf7vSrEiE--