33#define SRS_ERRTYPE_MASK 0xf000
34#define SRS_ERRTYPE_NONE 0x0000
35#define SRS_ERRTYPE_CONFIG 0x1000
36#define SRS_ERRTYPE_INPUT 0x2000
37#define SRS_ERRTYPE_SYNTAX 0x4000
38#define SRS_ERRTYPE_SRS 0x8000
40#define SRS_SUCCESS (0)
41#define SRS_ENOTSRSADDRESS (1)
42#define SRS_ENOTREWRITTEN (2)
44#define SRS_ENOSECRETS (SRS_ERRTYPE_CONFIG | 1)
45#define SRS_ESEPARATORINVALID (SRS_ERRTYPE_CONFIG | 2)
47#define SRS_ENOSENDERATSIGN (SRS_ERRTYPE_INPUT | 1)
48#define SRS_EBUFTOOSMALL (SRS_ERRTYPE_INPUT | 2)
50#define SRS_ENOSRS0HOST (SRS_ERRTYPE_SYNTAX | 1)
51#define SRS_ENOSRS0USER (SRS_ERRTYPE_SYNTAX | 2)
52#define SRS_ENOSRS0HASH (SRS_ERRTYPE_SYNTAX | 3)
53#define SRS_ENOSRS0STAMP (SRS_ERRTYPE_SYNTAX | 4)
54#define SRS_ENOSRS1HOST (SRS_ERRTYPE_SYNTAX | 5)
55#define SRS_ENOSRS1USER (SRS_ERRTYPE_SYNTAX | 6)
56#define SRS_ENOSRS1HASH (SRS_ERRTYPE_SYNTAX | 7)
57#define SRS_EBADTIMESTAMPCHAR (SRS_ERRTYPE_SYNTAX | 8)
58#define SRS_EHASHTOOSHORT (SRS_ERRTYPE_SYNTAX | 9)
60#define SRS_ETIMESTAMPOUTOFDATE (SRS_ERRTYPE_SRS | 1)
61#define SRS_EHASHINVALID (SRS_ERRTYPE_SRS | 2)
63#define SRS_ERROR_TYPE(x) ((x) & SRS_ERRTYPE_MASK)
67#define SRS_IS_SRS_ADDRESS(x) ( \
68 (strncasecmp((x),"SRS",3) == 0) && \
69 (strchr("01", (x)[3]) != NULL) && \
70 (strchr("-+=", (x)[4]) != NULL) \
73typedef void *(*srs_malloc_t)(size_t);
74typedef void *(*srs_realloc_t)(
void *,size_t);
114#define SRS_PARAM_DECLARE(n, t) \
115 int srs_set_ ## n (srs_t *srs, t value); \
116 t srs_get_ ## n (srs_t *srs);
int srs_reverse_alloc(srs_t *, char **, const char *)
void *(* srs_malloc_t)(size_t)
int srs_add_secret(srs_t *, const char *)
void(* srs_free_t)(void *)
void *(* srs_realloc_t)(void *, size_t)
int srs_reverse(srs_t *, char *, int, const char *)
int srs_forward(srs_t *, char *, int, const char *, const char *)
#define SRS_PARAM_DECLARE(n, t)
int srs_forward_alloc(srs_t *, char **, const char *, const char *)
const char * srs_strerror(int)
const char * srs_get_secret(srs_t *, int)
int srs_timestamp_create(srs_t *, char *, time_t)
int srs_timestamp_check(srs_t *, const char *)
int srs_set_malloc(srs_malloc_t m, srs_realloc_t r, srs_free_t f)