Add `auth.c`
This file contains permission-related functions.
Add `SIZE_MAX` to `auth.c`
Because the header <limits.h> doesn't seem to define it, as it should be
according to C99 standard.

Needed to check overflows.