gchar * pw_generate (void) { gchar *res; gint rv; rv = pwquality_generate (get_pwq (), 0, &res); if (rv < 0) { g_error ("Password generation failed: %s\n", pwquality_strerror (NULL, 0, rv, NULL)); return NULL; } return res; }
/* score a password */ int main(int argc, char *argv[]) { pwquality_settings_t *pwq; char *password; int rv; int bits; void *auxerror; setlocale(LC_ALL, ""); bindtextdomain("libpwquality", "/usr/share/locale"); textdomain("libpwquality"); if (argc != 2) { usage(basename(argv[0])); exit(3); } bits = atoi(argv[1]); pwq = pwquality_default_settings(); if (pwq == NULL) { fprintf(stderr, "Error: %s\n", pwquality_strerror(NULL, 0, PWQ_ERROR_MEM_ALLOC, NULL)); exit(2); } if ((rv = pwquality_read_config(pwq, NULL, &auxerror)) != 0) { fprintf(stderr, "Error: %s\n", pwquality_strerror(NULL, 0, rv, auxerror)); exit(3); } rv = pwquality_generate(pwq, bits, &password); if (rv != 0) { fprintf(stderr, "Error: %s\n", pwquality_strerror(NULL, 0, rv, NULL)); exit(1); } printf("%s\n", password); free(password); return 0; }