I know that sdtbool actually contains macros for defining true and false, but _Bool is a new type in C99 ... But it is in the standard, implemented by all major compilers, so it should be used for the sake of clarity.
IMHO this:
bool is_valid(char* password);
is more clear than this: int is_valid(char* password);