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 )