in reply to Login form

Hello bachoA4o,

my $username=CGI::Simple->new; my $pass=CGI::Simple->new; $username->param('textfield'); $pass->param('pass');

This creates two uninitialised CGI::Simple objects and then reads the (non-existent) fields 'textfield' and 'pass' — it doesn’t write them. You need something like this:

my $username = 'Fred'; my $password = 'Flintstone123'; my $cgi = CGI::Simple->new( { username => $username, pass => $pa +ssword } ); user_crypt($cgi);

and then sub user_crypt would be implemented as:

sub user_crypt { my ($cgi) = @_; my $cryUser = $cgi->param('username'); my $cryPass = $cgi->param('pass'); my $salt = rand(16); my $encode = argon2id_pass($cryPass, $salt, 3, '32M', 1, 16); createUser($cryUser, $encode); }

BTW, there is no need to pre-declare your subroutines.

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,