00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef ISCCC_CC_H
00035 #define ISCCC_CC_H 1
00036
00037
00038
00039 #include <isc/lang.h>
00040 #include <isc/buffer.h>
00041 #include <isccc/types.h>
00042
00043 ISC_LANG_BEGINDECLS
00044
00045
00046
00047 #define ISCCC_ALG_UNKNOWN 0
00048 #define ISCCC_ALG_HMACMD5 157
00049 #define ISCCC_ALG_HMACSHA1 161
00050 #define ISCCC_ALG_HMACSHA224 162
00051 #define ISCCC_ALG_HMACSHA256 163
00052 #define ISCCC_ALG_HMACSHA384 164
00053 #define ISCCC_ALG_HMACSHA512 165
00054
00055
00056 #define ISCCC_CC_MAXDGRAMPACKET 4096
00057
00058
00059 #define ISCCC_CCMSGTYPE_STRING 0x00
00060
00061 #define ISCCC_CCMSGTYPE_BINARYDATA 0x01
00062
00063 #define ISCCC_CCMSGTYPE_TABLE 0x02
00064
00065 #define ISCCC_CCMSGTYPE_LIST 0x03
00066
00067
00068 isc_result_t
00069 isccc_cc_towire(isccc_sexpr_t *alist, isc_buffer_t **buffer,
00070 isc_uint32_t algorithm, isccc_region_t *secret);
00071
00072
00073 isc_result_t
00074 isccc_cc_fromwire(isccc_region_t *source, isccc_sexpr_t **alistp,
00075 isc_uint32_t algorithm, isccc_region_t *secret);
00076
00077
00078 isc_result_t
00079 isccc_cc_createmessage(isc_uint32_t version, const char *from, const char *to,
00080 isc_uint32_t serial, isccc_time_t now,
00081 isccc_time_t expires, isccc_sexpr_t **alistp);
00082
00083
00084 isc_result_t
00085 isccc_cc_createack(isccc_sexpr_t *message, isc_boolean_t ok,
00086 isccc_sexpr_t **ackp);
00087
00088
00089 isc_boolean_t
00090 isccc_cc_isack(isccc_sexpr_t *message);
00091
00092
00093 isc_boolean_t
00094 isccc_cc_isreply(isccc_sexpr_t *message);
00095
00096
00097 isc_result_t
00098 isccc_cc_createresponse(isccc_sexpr_t *message, isccc_time_t now,
00099 isccc_time_t expires, isccc_sexpr_t **alistp);
00100
00101
00102 isccc_sexpr_t *
00103 isccc_cc_definestring(isccc_sexpr_t *alist, const char *key, const char *str);
00104
00105
00106 isccc_sexpr_t *
00107 isccc_cc_defineuint32(isccc_sexpr_t *alist, const char *key, isc_uint32_t i);
00108
00109
00110 isc_result_t
00111 isccc_cc_lookupstring(isccc_sexpr_t *alist, const char *key, char **strp);
00112
00113
00114 isc_result_t
00115 isccc_cc_lookupuint32(isccc_sexpr_t *alist, const char *key,
00116 isc_uint32_t *uintp);
00117
00118
00119 isc_result_t
00120 isccc_cc_createsymtab(isccc_symtab_t **symtabp);
00121
00122
00123 void
00124 isccc_cc_cleansymtab(isccc_symtab_t *symtab, isccc_time_t now);
00125
00126
00127 isc_result_t
00128 isccc_cc_checkdup(isccc_symtab_t *symtab, isccc_sexpr_t *message,
00129 isccc_time_t now);
00130
00131 ISC_LANG_ENDDECLS
00132
00133 #endif