passdb.h revision 3cf67672fdc87583cb23ce088c95bb5dee60e74d
d9076f5939edf5d20a261494b1a861dcbb0d32e2Timo Sirainen ((pass)[0] != '\0' && (pass)[0] != '*' && (pass)[0] != '!')
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainentypedef void verify_plain_callback_t(enum passdb_result result,
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainentypedef void lookup_credentials_callback_t(enum passdb_result result,
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen const unsigned char *credentials,
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainentypedef void set_credentials_callback_t(bool success,
2dd39e478269d6fb0bb26d12b394aa30ee965e38Timo Sirainen (*preinit)(struct auth_passdb *auth_passdb, const char *args);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen void (*init)(struct passdb_module *module, const char *args);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen /* Check if plaintext password matches */
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen void (*verify_plain)(struct auth_request *request, const char *password,
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen /* Return authentication credentials, set in
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen auth_request->credentials. */
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen void (*lookup_credentials)(struct auth_request *request,
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen /* Update credentials */
3e564425db51f3921ce4de11859777135fdedd15Timo Sirainen int (*set_credentials)(struct auth_request *request,
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen /* The caching key for this module, or NULL if caching isn't wanted. */
563273bdac80393af63b9520cbf4d24cc0efd028Timo Sirainen /* Default password scheme for this module.
563273bdac80393af63b9520cbf4d24cc0efd028Timo Sirainen If cache_key is set, must not be NULL. */
563273bdac80393af63b9520cbf4d24cc0efd028Timo Sirainen /* If blocking is set to TRUE, use child processes to access
e5fd6dfd0a492e4708d4dbb7971d7fc5d7b8fd85Timo Sirainen this passdb. */
4ba9a1d3facc515b3feb5238a16bcf91f76fac61Timo Sirainen /* id is used by blocking passdb to identify the passdb */
4ba9a1d3facc515b3feb5238a16bcf91f76fac61Timo Sirainen unsigned int id;
8b31f966d9688e07672ef1958dcbdb7686523c04Timo Sirainen/* Try to get credentials in wanted scheme (request->credentials_scheme) from
8b31f966d9688e07672ef1958dcbdb7686523c04Timo Sirainen given input. Returns FALSE if this wasn't possible (unknown scheme,
9847ec56efa15fa063eea9988eee2d4ed9ec7d58Timo Sirainen conversion not possible or invalid credentials).
9847ec56efa15fa063eea9988eee2d4ed9ec7d58Timo Sirainen If wanted scheme is "", the credentials are returned as-is without any
d46a1e3f999dda802dc5137e883adcd7a6629cd3Timo Sirainen checks. This is useful mostly just to see if there exist any credentials
d46a1e3f999dda802dc5137e883adcd7a6629cd3Timo Sirainenbool passdb_get_credentials(struct auth_request *auth_request,
d1e843e77f4760e303c53d9fce10123fc8d230a1Timo Sirainen const unsigned char **credentials_r,
291ce16fffca75e8598a8c9dceb08613413dcb07Timo Sirainenvoid passdb_handle_credentials(enum passdb_result result,
563273bdac80393af63b9520cbf4d24cc0efd028Timo Sirainenpassdb_preinit(struct auth *auth, struct auth_passdb_settings *set);
306b3f41b05da642d87e7ca7a1496efce9f5902fTimo Sirainenvoid passdb_deinit(struct auth_passdb *passdb);
306b3f41b05da642d87e7ca7a1496efce9f5902fTimo Sirainenvoid passdb_register_module(struct passdb_module_interface *iface);