"Fossies" - the Fresh Open Source Software Archive 
Member "passwdqc-2.0.3/passwdqc.h" (23 Jun 2023, 1958 Bytes) of package /linux/privat/passwdqc-2.0.3.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
For more information about "passwdqc.h" see the
Fossies "Dox" file reference documentation and the latest
Fossies "Diffs" side-by-side code changes report:
2.0.2_vs_2.0.3.
1 /*
2 * Copyright (c) 2000-2002,2016,2019,2020,2021 by Solar Designer
3 * Copyright (c) 2008,2009 by Dmitry V. Levin
4 * See LICENSE
5 */
6
7 #ifndef PASSWDQC_H__
8 #define PASSWDQC_H__
9
10 #ifndef _MSC_VER
11 #include <pwd.h>
12 #endif
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 #ifdef _MSC_VER
19 /* Partial struct passwd just to accommodate passwdqc code's expectations */
20 struct passwd {
21 char *pw_name;
22 char *pw_passwd;
23 char *pw_gecos;
24 char *pw_dir;
25 char *pw_shell;
26 };
27 #endif
28
29 typedef struct {
30 int min[5], max;
31 int passphrase_words;
32 int match_length;
33 int similar_deny;
34 int random_bits;
35 char *wordlist;
36 char *denylist;
37 char *filter;
38 } passwdqc_params_qc_t;
39
40 typedef struct {
41 int flags;
42 int retry;
43 } passwdqc_params_pam_t;
44
45 typedef struct {
46 passwdqc_params_qc_t qc;
47 passwdqc_params_pam_t pam;
48 } passwdqc_params_t;
49
50 extern const char *passwdqc_check(const passwdqc_params_qc_t *params,
51 const char *newpass, const char *oldpass, const struct passwd *pw);
52 extern char *passwdqc_random(const passwdqc_params_qc_t *params);
53
54 extern int passwdqc_params_parse(passwdqc_params_t *params,
55 char **reason, int argc, const char *const *argv);
56 extern int passwdqc_params_load(passwdqc_params_t *params,
57 char **reason, const char *pathname);
58 extern void passwdqc_params_reset(passwdqc_params_t *params);
59 extern void passwdqc_params_free(passwdqc_params_t *params);
60
61 #define F_ENFORCE_MASK 0x00000003
62 #define F_ENFORCE_USERS 0x00000001
63 #define F_ENFORCE_ROOT 0x00000002
64 #define F_ENFORCE_EVERYONE F_ENFORCE_MASK
65 #define F_NON_UNIX 0x00000004
66 #define F_ASK_OLDAUTHTOK_MASK 0x00000030
67 #define F_ASK_OLDAUTHTOK_PRELIM 0x00000010
68 #define F_ASK_OLDAUTHTOK_UPDATE 0x00000020
69 #define F_CHECK_OLDAUTHTOK 0x00000040
70 #define F_USE_FIRST_PASS 0x00000100
71 #define F_USE_AUTHTOK 0x00000200
72 #define F_NO_AUDIT 0x00000400
73
74 #define PASSWDQC_VERSION "2.0.3"
75
76 extern void (*_passwdqc_memzero)(void *, size_t);
77
78 #ifdef __cplusplus
79 }
80 #endif
81
82 #endif /* PASSWDQC_H__ */