Il 06/01/25 20:28, Dan ha scritto:
On Mon, Jan 6, 2025 at 1:09 PM Guido Brugnara via module-authors <module-authors@perl.org> wrote:

    I will preface this by saying that I am a beginner in the use of
    PAUSE, even though I registered my name (BRUGNARA) many years ago,
    without using it until now.

    I read [1] that it is recommended to ask for advice in this
    mail-list in naming new modules.

    I would like to publish a new module to generate SCRAM encrypted
    password in the format used by PostgreSQL.

    A source code (usable from the command line) can be found here:

    https://www.leader.it/en/Blog/PostgreSQL_SCRAM-SHA-256_authentication

    I just need to rewrite it using the appropriate package by making
    available method, or an exported function

    A name, I think suitable, could be:

        Postgresql::Password::SCRAM

    I would be grateful in receiving your opinion.


Seems reasonable to me; if you think a name less tied specifically to Postgres would be appropriate, you could consider the Crypt:: top level namespace, possibly still with a reference to PostgreSQL if it is a specific algorithm for that. You also might avoid "Password" as the function is an encryption scheme not a password generator. Note that for discoverability, searches on metacpan will also easily find terms mentioned in the module's abstract in the NAME section, and the DESCRIPTION (see perldoc perlpodstyle).

If that's okay:

    Crypt::PostgreSQL   implementing the method "crypt" implementing the tree format described in: https://www.postgresql.org/docs/current/auth-password.html

|scram_sha_256 - SCRAM method using keys embedded in the code
||md5 - trivial as MD5 crypt |concatenating login and password
|||password - |it is useless because the password is in clear text
||


As a side note, Crypt::Salt uses the built in rand() which is not cryptographically secure; you may consider something like Crypt::URandom or Math::Random::Secure to retrieve securely random bytes for a salt.

Well! I will use one of the two.

In case you need any tips regarding distribution layout and authoring, you may find the beginning of my Dist::Zilla::Starter guide[1] useful (whether or not you decide the bundle itself or dzil is useful).

Thank you for the suggestion. I have been trying Dist::Zilla since yesterday.

Guido

P.S. I would need to change the e-mail for the account on PAUSE but the password has expired and the old e-mail is in a subdomain now no longer used. Who can I turn to?


Welcome to CPAN authoring!

-Dan

[1] https://metacpan.org/pod/Dist::Zilla::Starter

Reply via email to