Data-Password-passwdqc
view release on metacpan or search on metacpan
passwdqc.xs view on Meta::CPAN
else {
pw = NULL;
}
reason = passwdqc_check(params, new_pass, old_pass, pw);
if (!reason)
return &PL_sv_undef;
return newSVpvn(reason, strlen(reason));
}
MODULE = Data::Password::passwdqc PACKAGE = Data::Password::passwdqc
PROTOTYPES: DISABLE
SV *
password_generate (packed_params)
const char * packed_params
SV *
password_check (packed_params, new_pass, ...)
const char * packed_params
const char * new_pass
CODE:
switch (items) {
case 5:
RETVAL = password_check(packed_params, new_pass,
SvOK(ST(2)) ? (char *)SvPV_nolen(ST(2)) : NULL,
SvOK(ST(3)) ? (char *)SvPV_nolen(ST(3)) : NULL,
SvOK(ST(4)) ? (char *)SvPV_nolen(ST(4)) : NULL);
break;
case 4:
RETVAL = password_check(packed_params, new_pass,
SvOK(ST(2)) ? (char *)SvPV_nolen(ST(2)) : NULL,
SvOK(ST(3)) ? (char *)SvPV_nolen(ST(3)) : NULL,
NULL);
break;
case 3:
RETVAL = password_check(packed_params, new_pass,
SvOK(ST(2)) ? (char *)SvPV_nolen(ST(2)) : NULL,
NULL,
NULL);
break;
case 2:
RETVAL = password_check(packed_params, new_pass, NULL, NULL, NULL);
break;
default:
croak("password_check() called with too few arguments!");
break;
}
OUTPUT:
RETVAL
void
_test_params (packed_params)
const char * packed_params
PREINIT:
const passwdqc_params_qc_t * params;
PPCODE:
params = (passwdqc_params_qc_t *)packed_params;
EXTEND(SP, 10);
PUSHs(sv_2mortal(newSViv(params->min[0])));
PUSHs(sv_2mortal(newSViv(params->min[1])));
PUSHs(sv_2mortal(newSViv(params->min[2])));
PUSHs(sv_2mortal(newSViv(params->min[3])));
PUSHs(sv_2mortal(newSViv(params->min[4])));
PUSHs(sv_2mortal(newSViv(params->max)));
PUSHs(sv_2mortal(newSViv(params->passphrase_words)));
PUSHs(sv_2mortal(newSViv(params->match_length)));
PUSHs(sv_2mortal(newSViv(params->similar_deny)));
PUSHs(sv_2mortal(newSViv(params->random_bits)));
SV *
_test_int_max ()
CODE:
RETVAL = newSViv(INT_MAX);
OUTPUT:
RETVAL
( run in 1.291 second using v1.01-cache-2.11-cpan-71847e10f99 )