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 1tAr8v-000TCL-TJ for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Nov 2024 13:41:17 +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 1tAr8t-006TsZ-7d for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Nov 2024 13:41:15 +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 1tAr8s-006TsR-P3 for pgsql-hackers@lists.postgresql.org; Tue, 12 Nov 2024 13:41:15 +0000 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tAr8p-001Xr3-Vm for pgsql-hackers@lists.postgresql.org; Tue, 12 Nov 2024 13:41:14 +0000 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-5ceccffadfdso7817152a12.2 for ; Tue, 12 Nov 2024 05:41:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731418871; x=1732023671; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Tk3ErsfFl990QvNqzLWm7O+Bz3D76S8q0BRYBGGqG5U=; b=d3iDa94zfwg7+haLFWTx5ZDZexkKNigs+Myw/P3qA5Padh0KZ2q5+th40dazn7FXqq CxgrwZeu98enus5WzAqjXL0ir75iyKoQ42Wjeso8u+W38NZXKeDGJPWfOPHtFfQh3O1z 4Kb6gDEc3doHT5piGm/YUGnzNXaqopJ2JDXABD6/AA/QBbKXeC3JrmoQ8+CeC1I7jQEf cD8G3jZQgpYKS0eFmlXb52OiokpdoD2j/sIQX2MJ6fZcOM3Q5CbS3Q53gY2+JPBIw4iB oGFfLrmIDZKC0gR+lRgCgXoXhw7tcpxPnMuhAF6pvu29gfbpZOBHThWMNoplibZ/Vnx0 fVSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731418871; x=1732023671; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Tk3ErsfFl990QvNqzLWm7O+Bz3D76S8q0BRYBGGqG5U=; b=hMxz12rGsHJoo7OeTziXifL6rzaMzLLybsPa9F5OZbQmJcUZKLnwFbVuAG++3HPPeU RZMESk2tIHkBdDqEtgaSsyfD9dK/++D1leygyr3KcGBnwDSLkZVneYA/7/+zzaEEwZtX HY//IYgmH+w0zTZ6CL2WJ3AR2atnD1cEWZS+h2cBCsCGlgcMstlnPFDgsUOBxDAF5yPr Vznq1H+E01AaKIFoTnKglMBG9k+LKvGUXEABinaNaEUdApfYSXHW4YM17y9j/sK/jM3g aF3nyMfxXVZBUd/9G6FXlkLGp62dwprc2dpUNgeylW6kyBuYxb8+zlmJ6N3fCwMBwE41 tbqg== X-Gm-Message-State: AOJu0Yzzh+jN4gxYVD6BYU9cKamQkGMgWqgLCm9d4y6jb934ZKuJQuYA 4RVY6f8tpoNByEeOcvZcB65vsv0/Nc08Skivqxlean5kex7Y+lFvGLWraUo2P4bJplI3pwD4uY3 57rAi6oU2x6ryHBE+OmOJE/WQso6FHNvn X-Google-Smtp-Source: AGHT+IHHhqmxXJBRVNCnt/uQGJGeBPJ1fzBO9fVSwxiRV8XlL6+GEs3pc4z6fEPdTViEp2X6LQu4YRRKYBUvjiE7sW8= X-Received: by 2002:a05:6402:234f:b0:5cf:757:f806 with SMTP id 4fb4d7f45d1cf-5cf0a31b27bmr12910880a12.9.1731418871072; Tue, 12 Nov 2024 05:41:11 -0800 (PST) MIME-Version: 1.0 From: Emanuele Musella Date: Tue, 12 Nov 2024 14:41:00 +0100 Message-ID: Subject: Parametrization minimum password lenght To: pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000c4bc430626b75ec5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c4bc430626b75ec5 Content-Type: multipart/alternative; boundary="000000000000c4bc410626b75ec3" --000000000000c4bc410626b75ec3 Content-Type: text/plain; charset="UTF-8" The goal about this patch is to parameterize the minimum password lenght on users database and apply it on the general code. The patch is applicable to the master branch. We already tested it: it build and works as expected and nothing is found broken, Settings in postgresql.conf parametrization like following: shared_preload_libraries = 'passwordcheck' min_password_lenght = 12 example: postgres=# create user prova with password 'eftghaki'; ERROR: password is too short postgres=# create user prova with password 'eftghaki1234'; CREATE ROLE In attach the file patch. Best regards Emanuele Musella & Maurizio Boriani --000000000000c4bc410626b75ec3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
The goal about this patch is to parameterize the minimum p= assword lenght on users database and apply it on the general code.
The = patch is applicable to the master branch.
We already tested it: i= t build and works as expected and nothing is found broken,

Settings in postgresql.conf parametrization like following:
<= div>
shared_preload_libraries =3D 'passwordcheck'
= min_password_lenght =3D 12

example:
=
postgres=3D# create user prova with password 'eftghaki&#= 39;;
ERROR: =C2=A0password is too short
postgres=3D# create user prov= a with password 'eftghaki1234';
CREATE ROLE


In attach the file patch.

= Best regards

Emanuele Musella & Maurizio Boria= ni

--000000000000c4bc410626b75ec3-- --000000000000c4bc430626b75ec5 Content-Type: application/octet-stream; name="min_password_length_v1.patch" Content-Disposition: attachment; filename="min_password_length_v1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3ei2d7i0 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGFzc3dvcmRjaGVjay9wYXNzd29yZGNoZWNrLmMgYi9jb250 cmliL3Bhc3N3b3JkY2hlY2svcGFzc3dvcmRjaGVjay5jCmluZGV4IDlkOGM1OGRlZDAuLjU3MmNm OGU3YTggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFzc3dvcmRjaGVjay9wYXNzd29yZGNoZWNrLmMK KysrIGIvY29udHJpYi9wYXNzd29yZGNoZWNrL3Bhc3N3b3JkY2hlY2suYwpAQCAtMzAsNyArMzAs NyBAQCBQR19NT0RVTEVfTUFHSUM7CiBzdGF0aWMgY2hlY2tfcGFzc3dvcmRfaG9va190eXBlIHBy ZXZfY2hlY2tfcGFzc3dvcmRfaG9vayA9IE5VTEw7CiAKIC8qIHBhc3N3b3JkcyBzaG9ydGVyIHRo YW4gdGhpcyB3aWxsIGJlIHJlamVjdGVkICovCi0jZGVmaW5lIE1JTl9QV0RfTEVOR1RIIDgKK2V4 dGVybiBpbnQgbWluX3Bhc3N3b3JkX2xlbmdodDsKIAogZXh0ZXJuIHZvaWQgX1BHX2luaXQodm9p ZCk7CiAKQEAgLTk1LDcgKzk1LDcgQEAgY2hlY2tfcGFzc3dvcmQoY29uc3QgY2hhciAqdXNlcm5h bWUsCiAjZW5kaWYKIAogCQkvKiBlbmZvcmNlIG1pbmltdW0gbGVuZ3RoICovCi0JCWlmIChwd2Rs ZW4gPCBNSU5fUFdEX0xFTkdUSCkKKwkJaWYgKHB3ZGxlbiA8IG1pbl9wYXNzd29yZF9sZW5naHQp CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1F VEVSX1ZBTFVFKSwKIAkJCQkJIGVycm1zZygicGFzc3dvcmQgaXMgdG9vIHNob3J0IikpKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Yy5jCmluZGV4IGFjYmNiOGJiODEuLjVkYzc0YjJjMmQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWMuYwpAQCAtMTYwLDYgKzE2MCwxMCBAQCBjaGFyCSAgICpHVUNfY2hlY2tfZXJybXNnX3N0cmlu ZzsKIGNoYXIJICAgKkdVQ19jaGVja19lcnJkZXRhaWxfc3RyaW5nOwogY2hhcgkgICAqR1VDX2No ZWNrX2VycmhpbnRfc3RyaW5nOwogCisvKiBtaW5fcGFzc3dvcmRfbGVuZ2h0IG1pbmltdW0gcGFz c3dvcmQgbGVuZ3RoICovCisKK2ludCBtaW5fcGFzc3dvcmRfbGVuZ2h0OworCiBzdGF0aWMgdm9p ZCBkb19zZXJpYWxpemUoY2hhciAqKmRlc3RwdHIsIFNpemUgKm1heGJ5dGVzLCBjb25zdCBjaGFy ICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQpOwogCiBzdGF0aWMgdm9pZCBzZXRf Y29uZmlnX3NvdXJjZWZpbGUoY29uc3QgY2hhciAqbmFtZSwgY2hhciAqc291cmNlZmlsZSwKQEAg LTM2NTMsNiArMzY1NywxNyBAQCBzdGF0aWMgc3RydWN0IGNvbmZpZ19pbnQgQ29uZmlndXJlTmFt ZXNJbnRbXSA9CiAJCU5VTEwsIE5VTEwsIE5VTEwKIAl9LAogCisJeworCQl7Im1pbl9wYXNzd29y ZF9sZW5naHQiLCBQR0NfVVNFUlNFVCwgUVVFUllfVFVOSU5HX0dFUU8sCisJCQlnZXR0ZXh0X25v b3AoIk1pbmltdW0gcGFzc3dvcmQgbGVuZ3RoLiIpLAorCQkJTlVMTCwKKwkJCUdVQ19FWFBMQUlO CisJCX0sCisJCSZtaW5fcGFzc3dvcmRfbGVuZ2h0LAorCQk4LCAwLCBJTlRfTUFYLAorCQlOVUxM LCBOVUxMLCBOVUxMCisJfSwKKwogCS8qIEVuZC1vZi1saXN0IG1hcmtlciAqLwogCXsKIAkJe05V TEwsIDAsIDAsIE5VTEwsIE5VTEx9LCBOVUxMLCAwLCAwLCAwLCBOVUxMLCBOVUxMLCBOVUxMCg== --000000000000c4bc430626b75ec5--