21#define SRS_ERRTYPE_MASK 0xf000
22#define SRS_ERRTYPE_NONE 0x0000
23#define SRS_ERRTYPE_CONFIG 0x1000
24#define SRS_ERRTYPE_OPER 0x2000
25#define SRS_ERRTYPE_SYNTAX 0x4000
26#define SRS_ERRTYPE_SRS 0x8000
28#define SRS_SUCCESS (0)
29#define SRS_ENOTSRSADDRESS (1)
30#define SRS_ENOTREWRITTEN (2)
31#define SRS_ENOSENDERATSIGN (3)
33#define SRS_ENOSECRETS (SRS_ERRTYPE_CONFIG | 1)
34#define SRS_ESEPARATORINVALID (SRS_ERRTYPE_CONFIG | 2)
36#define SRS_EOUTOFMEMORY (SRS_ERRTYPE_OPER | 1)
38#define SRS_ENOSRS0HOST (SRS_ERRTYPE_SYNTAX | 1)
39#define SRS_ENOSRS0USER (SRS_ERRTYPE_SYNTAX | 2)
40#define SRS_ENOSRS0HASH (SRS_ERRTYPE_SYNTAX | 3)
41#define SRS_ENOSRS0STAMP (SRS_ERRTYPE_SYNTAX | 4)
42#define SRS_ENOSRS1HOST (SRS_ERRTYPE_SYNTAX | 5)
43#define SRS_ENOSRS1USER (SRS_ERRTYPE_SYNTAX | 6)
44#define SRS_ENOSRS1HASH (SRS_ERRTYPE_SYNTAX | 7)
45#define SRS_EBADTIMESTAMPCHAR (SRS_ERRTYPE_SYNTAX | 8)
46#define SRS_EHASHTOOSHORT (SRS_ERRTYPE_SYNTAX | 9)
48#define SRS_ETIMESTAMPOUTOFDATE (SRS_ERRTYPE_SRS | 1)
49#define SRS_EHASHINVALID (SRS_ERRTYPE_SRS | 2)
51#define SRS_ERROR_TYPE(x) ((x) & SRS_ERRTYPE_MASK)
55#define SRS_IS_SRS_ADDRESS(x) ( \
56 (case_diffb((x),3,"SRS") == 0) && \
57 (str_chr("01", (x)[3]) != 2) && \
58 (str_chr("-+=", (x)[4]) != 4) \
61#define X(e,s) if (code == e) return s;
int srs_check_timestamp(srs_ctx *, char *)
const char * srs_errorstr(int)
int srs_create_timestamp(char *, time_t)
int srs_reverse(srs_ctx *, stralloc *, char *)
int srs_forward(srs_ctx *, stralloc *, const char *, const char *)