Browse code

speed optimizations

Jan Janak authored on 18/11/2002 23:24:46
Showing 5 changed files
... ...
@@ -31,176 +31,15 @@
31 31
 #ifndef DIGEST_KEYS_H
32 32
 #define DIGEST_KEYS_H
33 33
 
34
-
35 34
 #define _user_ 0x72657375   /* "user" */
36
-#define _useR_ 0x52657375   /* "useR" */
37
-#define _usEr_ 0x72457375   /* "usEr" */
38
-#define _usER_ 0x52457375   /* "usER" */
39
-#define _uSer_ 0x72655375   /* "uSer" */
40
-#define _uSeR_ 0x52655375   /* "uSeR" */
41
-#define _uSEr_ 0x72455375   /* "uSEr" */
42
-#define _uSER_ 0x52455375   /* "uSER" */
43
-#define _User_ 0x72657355   /* "User" */
44
-#define _UseR_ 0x52657355   /* "UseR" */
45
-#define _UsEr_ 0x72457355   /* "UsEr" */
46
-#define _UsER_ 0x52457355   /* "UsER" */
47
-#define _USer_ 0x72655355   /* "USer" */
48
-#define _USeR_ 0x52655355   /* "USeR" */
49
-#define _USEr_ 0x72455355   /* "USEr" */
50
-#define _USER_ 0x52455355   /* "USER" */
51
-
52 35
 #define _name_ 0x656d616e   /* "name" */
53
-#define _namE_ 0x456d616e   /* "namE" */
54
-#define _naMe_ 0x654d616e   /* "naMe" */
55
-#define _naME_ 0x454d616e   /* "naME" */
56
-#define _nAme_ 0x656d416e   /* "nAme" */
57
-#define _nAmE_ 0x456d416e   /* "nAmE" */
58
-#define _nAMe_ 0x654d416e   /* "nAMe" */
59
-#define _nAME_ 0x454d416e   /* "nAME" */
60
-#define _Name_ 0x656d614e   /* "Name" */
61
-#define _NamE_ 0x456d614e   /* "NamE" */
62
-#define _NaMe_ 0x654d614e   /* "NaMe" */
63
-#define _NaME_ 0x454d614e   /* "NaME" */
64
-#define _NAme_ 0x656d414e   /* "NAme" */
65
-#define _NAmE_ 0x456d414e   /* "NAmE" */
66
-#define _NAMe_ 0x654d414e   /* "NAMe" */
67
-#define _NAME_ 0x454d414e   /* "NAME" */
68
-
69 36
 #define _real_ 0x6c616572   /* "real" */
70
-#define _reaL_ 0x4c616572   /* "reaL" */
71
-#define _reAl_ 0x6c416572   /* "reAl" */
72
-#define _reAL_ 0x4c416572   /* "reAL" */
73
-#define _rEal_ 0x6c614572   /* "rEal" */
74
-#define _rEaL_ 0x4c614572   /* "rEaL" */
75
-#define _rEAl_ 0x6c414572   /* "rEAl" */
76
-#define _rEAL_ 0x4c414572   /* "rEAL" */
77
-#define _Real_ 0x6c616552   /* "Real" */
78
-#define _ReaL_ 0x4c616552   /* "ReaL" */
79
-#define _ReAl_ 0x6c416552   /* "ReAl" */
80
-#define _ReAL_ 0x4c416552   /* "ReAL" */
81
-#define _REal_ 0x6c614552   /* "REal" */
82
-#define _REaL_ 0x4c614552   /* "REaL" */
83
-#define _REAl_ 0x6c414552   /* "REAl" */
84
-#define _REAL_ 0x4c414552   /* "REAL" */
85
-
86 37
 #define _nonc_ 0x636e6f6e   /* "nonc" */
87
-#define _nonC_ 0x436e6f6e   /* "nonC" */
88
-#define _noNc_ 0x634e6f6e   /* "noNc" */
89
-#define _noNC_ 0x434e6f6e   /* "noNC" */
90
-#define _nOnc_ 0x636e4f6e   /* "nOnc" */
91
-#define _nOnC_ 0x436e4f6e   /* "nOnC" */
92
-#define _nONc_ 0x634e4f6e   /* "nONc" */
93
-#define _nONC_ 0x434e4f6e   /* "nONC" */
94
-#define _Nonc_ 0x636e6f4e   /* "Nonc" */
95
-#define _NonC_ 0x436e6f4e   /* "NonC" */
96
-#define _NoNc_ 0x634e6f4e   /* "NoNc" */
97
-#define _NoNC_ 0x434e6f4e   /* "NoNC" */
98
-#define _NOnc_ 0x636e4f4e   /* "NOnc" */
99
-#define _NOnC_ 0x436e4f4e   /* "NOnC" */
100
-#define _NONc_ 0x634e4f4e   /* "NONc" */
101
-#define _NONC_ 0x434e4f4e   /* "NONC" */
102
-
103 38
 #define _resp_ 0x70736572   /* "resp" */
104
-#define _resP_ 0x50736572   /* "resP" */
105
-#define _reSp_ 0x70536572   /* "reSp" */
106
-#define _reSP_ 0x50536572   /* "reSP" */
107
-#define _rEsp_ 0x70734572   /* "rEsp" */
108
-#define _rEsP_ 0x50734572   /* "rEsP" */
109
-#define _rESp_ 0x70534572   /* "rESp" */
110
-#define _rESP_ 0x50534572   /* "rESP" */
111
-#define _Resp_ 0x70736552   /* "Resp" */
112
-#define _ResP_ 0x50736552   /* "ResP" */
113
-#define _ReSp_ 0x70536552   /* "ReSp" */
114
-#define _ReSP_ 0x50536552   /* "ReSP" */
115
-#define _REsp_ 0x70734552   /* "REsp" */
116
-#define _REsP_ 0x50734552   /* "REsP" */
117
-#define _RESp_ 0x70534552   /* "RESp" */
118
-#define _RESP_ 0x50534552   /* "RESP" */
119
-
120 39
 #define _onse_ 0x65736e6f   /* "onse" */
121
-#define _onsE_ 0x45736e6f   /* "onsE" */
122
-#define _onSe_ 0x65536e6f   /* "onSe" */
123
-#define _onSE_ 0x45536e6f   /* "onSE" */
124
-#define _oNse_ 0x65734e6f   /* "oNse" */
125
-#define _oNsE_ 0x45734e6f   /* "oNsE" */
126
-#define _oNSe_ 0x65534e6f   /* "oNSe" */
127
-#define _oNSE_ 0x45534e6f   /* "oNSE" */
128
-#define _Onse_ 0x65736e4f   /* "Onse" */
129
-#define _OnsE_ 0x45736e4f   /* "OnsE" */
130
-#define _OnSe_ 0x65536e4f   /* "OnSe" */
131
-#define _OnSE_ 0x45536e4f   /* "OnSE" */
132
-#define _ONse_ 0x65734e4f   /* "ONse" */
133
-#define _ONsE_ 0x45734e4f   /* "ONsE" */
134
-#define _ONSe_ 0x65534e4f   /* "ONSe" */
135
-#define _ONSE_ 0x45534e4f   /* "ONSE" */
136
-
137 40
 #define _cnon_ 0x6e6f6e63   /* "cnon" */
138
-#define _cnoN_ 0x4e6f6e63   /* "cnoN" */
139
-#define _cnOn_ 0x6e4f6e63   /* "cnOn" */
140
-#define _cnON_ 0x4e4f6e63   /* "cnON" */
141
-#define _cNon_ 0x6e6f4e63   /* "cNon" */
142
-#define _cNoN_ 0x4e6f4e63   /* "cNoN" */
143
-#define _cNOn_ 0x6e4f4e63   /* "cNOn" */
144
-#define _cNON_ 0x4e4f4e63   /* "cNON" */
145
-#define _Cnon_ 0x6e6f6e43   /* "Cnon" */
146
-#define _CnoN_ 0x4e6f6e43   /* "CnoN" */
147
-#define _CnOn_ 0x6e4f6e43   /* "CnOn" */
148
-#define _CnON_ 0x4e4f6e43   /* "CnON" */
149
-#define _CNon_ 0x6e6f4e43   /* "CNon" */
150
-#define _CNoN_ 0x4e6f4e43   /* "CNoN" */
151
-#define _CNOn_ 0x6e4f4e43   /* "CNOn" */
152
-#define _CNON_ 0x4e4f4e43   /* "CNON" */
153
-
154 41
 #define _opaq_ 0x7161706f   /* "opaq" */
155
-#define _opaQ_ 0x5161706f   /* "opaQ" */
156
-#define _opAq_ 0x7141706f   /* "opAq" */
157
-#define _opAQ_ 0x5141706f   /* "opAQ" */
158
-#define _oPaq_ 0x7161506f   /* "oPaq" */
159
-#define _oPaQ_ 0x5161506f   /* "oPaQ" */
160
-#define _oPAq_ 0x7141506f   /* "oPAq" */
161
-#define _oPAQ_ 0x5141506f   /* "oPAQ" */
162
-#define _Opaq_ 0x7161704f   /* "Opaq" */
163
-#define _OpaQ_ 0x5161704f   /* "OpaQ" */
164
-#define _OpAq_ 0x7141704f   /* "OpAq" */
165
-#define _OpAQ_ 0x5141704f   /* "OpAQ" */
166
-#define _OPaq_ 0x7161504f   /* "OPaq" */
167
-#define _OPaQ_ 0x5161504f   /* "OPaQ" */
168
-#define _OPAq_ 0x7141504f   /* "OPAq" */
169
-#define _OPAQ_ 0x5141504f   /* "OPAQ" */
170
-
171 42
 #define _algo_ 0x6f676c61   /* "algo" */
172
-#define _algO_ 0x4f676c61   /* "algO" */
173
-#define _alGo_ 0x6f476c61   /* "alGo" */
174
-#define _alGO_ 0x4f476c61   /* "alGO" */
175
-#define _aLgo_ 0x6f674c61   /* "aLgo" */
176
-#define _aLgO_ 0x4f674c61   /* "aLgO" */
177
-#define _aLGo_ 0x6f474c61   /* "aLGo" */
178
-#define _aLGO_ 0x4f474c61   /* "aLGO" */
179
-#define _Algo_ 0x6f676c41   /* "Algo" */
180
-#define _AlgO_ 0x4f676c41   /* "AlgO" */
181
-#define _AlGo_ 0x6f476c41   /* "AlGo" */
182
-#define _AlGO_ 0x4f476c41   /* "AlGO" */
183
-#define _ALgo_ 0x6f674c41   /* "ALgo" */
184
-#define _ALgO_ 0x4f674c41   /* "ALgO" */
185
-#define _ALGo_ 0x6f474c41   /* "ALGo" */
186
-#define _ALGO_ 0x4f474c41   /* "ALGO" */
187
-
188 43
 #define _rith_ 0x68746972   /* "rith" */
189
-#define _ritH_ 0x48746972   /* "ritH" */
190
-#define _riTh_ 0x68546972   /* "riTh" */
191
-#define _riTH_ 0x48546972   /* "riTH" */
192
-#define _rIth_ 0x68744972   /* "rIth" */
193
-#define _rItH_ 0x48744972   /* "rItH" */
194
-#define _rITh_ 0x68544972   /* "rITh" */
195
-#define _rITH_ 0x48544972   /* "rITH" */
196
-#define _Rith_ 0x68746952   /* "Rith" */
197
-#define _RitH_ 0x48746952   /* "RitH" */
198
-#define _RiTh_ 0x68546952   /* "RiTh" */
199
-#define _RiTH_ 0x48546952   /* "RiTH" */
200
-#define _RIth_ 0x68744952   /* "RIth" */
201
-#define _RItH_ 0x48744952   /* "RItH" */
202
-#define _RITh_ 0x68544952   /* "RITh" */
203
-#define _RITH_ 0x48544952   /* "RITH" */
204
-
205 44
 
206 45
 #endif /* DIGEST_KEYS_H */
... ...
@@ -362,12 +362,3 @@ void init_dig_cred(dig_cred_t* _c)
362 362
 	memset(_c, 0, sizeof(dig_cred_t));
363 363
 }
364 364
 
365
-
366
-/*
367
- * Initialize digest_parser
368
- */
369
- 
370
-void init_digest_parser(void)
371
-{
372
-        init_digest_htable();
373
-}
... ...
@@ -85,12 +85,6 @@ typedef struct dig_cred {
85 85
 } dig_cred_t;
86 86
 
87 87
 
88
-/*
89
- * Initialize digest parser
90
- */
91
-void init_digest_parser(void);
92
-
93
-
94 88
 /*
95 89
  * Initialize a digest credentials structure
96 90
  */
... ...
@@ -27,94 +27,22 @@
27 27
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28 28
  */
29 29
 
30
-
31
-
32 30
 #include "param_parser.h"
33 31
 #include "digest_keys.h"
34 32
 #include "../../trim.h"
35 33
 #include "../../ut.h"
36 34
 
37
-/*
38
- * Precalculated hash table size
39
- * WARNING: The size MUST be recalculated
40
- *          again if new parameter names
41
- *          should be parsed
42
- */
43
-#define HASH_TABLE_SIZE 859
44
-
45
-
46
-/*
47
- * Hash function
48
- */
49
-#define HASH_FUNC(val) ((val) % HASH_TABLE_SIZE)
50
-
51
-
52
-/*
53
- * This constant marks an empty hash table element
54
- */
55
-#define HASH_EMPTY 0x2d2d2d2d
56
-
57
-
58
-/*
59
- * Hash table entry
60
- */
61
-struct ht_entry {
62
-	unsigned int key;
63
-	unsigned int value;
64
-};
65
-
66
-
67
-static struct ht_entry hash_table[HASH_TABLE_SIZE];
68
-
69
-
70
-/*
71
- * Pointer to the hash table
72
- */
73
-/*
74
-static struct ht_entry *hash_table;
75
-*/
76
-
77
-
78
-/*
79
- * Declarations
80
- */
81
-static void set_entry (unsigned int key, unsigned int val);
82
-static inline int unify (int key);
83
-
84
-
85
-
86
-/*
87
- * Used to initialize hash table
88
- */
89
-static void set_entry(unsigned int key, unsigned int val)
90
-{
91
-	hash_table[HASH_FUNC(key)].key = key;
92
-	hash_table[HASH_FUNC(key)].value = val;
93
-}
94
-
95
-
96
-static inline int unify(int key)
97
-{
98
-	register struct ht_entry* en;
99
-
100
-	en = &hash_table[HASH_FUNC(key)];
101
-	if (en->key == key) {
102
-		return en->value;
103
-	} else {
104
-		return key;
105
-	}
106
-}
107
-
35
+#define LOWER_BYTE(b) ((b) | 0x20)
36
+#define LOWER_DWORD(d) ((d) | 0x20202020)
108 37
 
109 38
 /*
110 39
  * Parse short (less than 4 bytes) parameter names
111 40
  */
112 41
 #define PARSE_SHORT                                                   \
113
-	switch(*p) {                                                  \
42
+	switch(LOWER_BYTE(*p)) {                                      \
114 43
 	case 'u':                                                     \
115
-	case 'U':                                                     \
116
-		if ((*(p + 1) == 'r') || (*(p + 1) == 'R')) {         \
117
-			if ((*(p + 2) == 'i') || (*(p + 2) == 'I')) { \
44
+		if (LOWER_BYTE(*(p + 1)) == 'r') {                    \
45
+			if (LOWER_BYTE(*(p + 2)) == 'i') {            \
118 46
 				*_type = PAR_URI;                     \
119 47
                                 p += 3;                               \
120 48
 				goto end;                             \
... ...
@@ -123,9 +51,8 @@ static inline int unify(int key)
123 51
 		break;                                                \
124 52
                                                                       \
125 53
 	case 'q':                                                     \
126
-	case 'Q':                                                     \
127
-		if ((*(p + 1) == 'o') || (*(p + 1) == 'O')) {         \
128
-			if ((*(p + 2) == 'p') || (*(p + 2) == 'P')) { \
54
+		if (LOWER_BYTE(*(p + 1)) == 'o') {                    \
55
+			if (LOWER_BYTE(*(p + 2)) == 'p') {            \
129 56
 				*_type = PAR_QOP;                     \
130 57
                                 p += 3;                               \
131 58
 				goto end;                             \
... ...
@@ -134,8 +61,7 @@ static inline int unify(int key)
134 61
 		break;                                                \
135 62
                                                                       \
136 63
 	case 'n':                                                     \
137
-	case 'N':                                                     \
138
-		if ((*(p + 1) == 'c') || (*(p + 1) == 'C')) {         \
64
+		if (LOWER_BYTE(*(p + 1)) == 'c') {                    \
139 65
 			*_type = PAR_NC;                              \
140 66
                         p += 2;                                       \
141 67
 			goto end;                                     \
... ...
@@ -155,7 +81,7 @@ static inline int unify(int key)
155 81
 
156 82
 
157 83
 #define name_CASE                      \
158
-        switch(val) {                  \
84
+        switch(LOWER_DWORD(val)) {     \
159 85
         case _name_:                   \
160 86
 		*_type = PAR_USERNAME; \
161 87
                 p += 4;                \
... ...
@@ -166,16 +92,13 @@ static inline int unify(int key)
166 92
 #define user_CASE         \
167 93
         p += 4;           \
168 94
         val = READ(p);    \
169
-        name_CASE;        \
170
-                          \
171
-        val = unify(val); \
172 95
         name_CASE;        \
173 96
         goto other;
174 97
 
175 98
 
176 99
 #define real_CASE                         \
177 100
         p += 4;                           \
178
-        if ((*p == 'm') || (*p == 'M')) { \
101
+        if (LOWER_BYTE(*p) == 'm') {      \
179 102
 		*_type = PAR_REALM;       \
180 103
                 p++;                      \
181 104
 		goto end;                 \
... ...
@@ -184,7 +107,7 @@ static inline int unify(int key)
184 107
 
185 108
 #define nonc_CASE                         \
186 109
         p += 4;                           \
187
-        if ((*p == 'e') || (*p == 'E')) { \
110
+        if (LOWER_BYTE(*p) == 'e') {      \
188 111
 	        *_type = PAR_NONCE;       \
189 112
                 p++;                      \
190 113
 		goto end;                 \
... ...
@@ -192,7 +115,7 @@ static inline int unify(int key)
192 115
 
193 116
 
194 117
 #define onse_CASE                      \
195
-        switch(val) {                  \
118
+        switch(LOWER_DWORD(val)) {     \
196 119
         case _onse_:                   \
197 120
 		*_type = PAR_RESPONSE; \
198 121
                 p += 4;                \
... ...
@@ -203,18 +126,15 @@ static inline int unify(int key)
203 126
 #define resp_CASE         \
204 127
         p += 4;           \
205 128
         val = READ(p);    \
206
-        onse_CASE;        \
207
-                          \
208
-        val = unify(val); \
209 129
         onse_CASE;        \
210 130
         goto other;
211 131
 
212 132
 
213 133
 #define cnon_CASE                                 \
214 134
         p += 4;                                   \
215
-        if ((*p == 'c') || (*p == 'C')) {         \
135
+        if (LOWER_BYTE(*p) == 'c') {              \
216 136
 		p++;                              \
217
-		if ((*p == 'e') || (*p == 'E')) { \
137
+		if (LOWER_BYTE(*p) == 'e') {      \
218 138
 			*_type = PAR_CNONCE;      \
219 139
                         p++;                      \
220 140
 			goto end;                 \
... ...
@@ -225,9 +145,9 @@ static inline int unify(int key)
225 145
 
226 146
 #define opaq_CASE                                 \
227 147
         p += 4;                                   \
228
-        if ((*p == 'u') || (*p == 'U')) {         \
148
+        if (LOWER_BYTE(*p) == 'u') {              \
229 149
 		p++;                              \
230
-		if ((*p == 'e') || (*p == 'E')) { \
150
+		if (LOWER_BYTE(*p) == 'e') {      \
231 151
 			*_type = PAR_OPAQUE;      \
232 152
                         p++;                      \
233 153
 			goto end;                 \
... ...
@@ -237,10 +157,10 @@ static inline int unify(int key)
237 157
 
238 158
 
239 159
 #define rith_CASE                                 \
240
-        switch(val) {                             \
160
+        switch(LOWER_DWORD(val)) {                \
241 161
 	case _rith_:                              \
242 162
 		p += 4;                           \
243
-		if ((*p == 'm') || (*p == 'M')) { \
163
+		if (LOWER_BYTE(*p) == 'm') {      \
244 164
 			*_type = PAR_ALGORITHM;   \
245 165
                         p++;                      \
246 166
 			goto end;                 \
... ...
@@ -253,10 +173,7 @@ static inline int unify(int key)
253 173
         p += 4;           \
254 174
         val = READ(p);    \
255 175
         rith_CASE;        \
256
-                          \
257
-        val = unify(val); \
258
-        rith_CASE;        \
259
-        goto other;
176
+        goto other
260 177
 
261 178
 
262 179
 #define FIRST_QUATERNIONS       \
... ...
@@ -273,29 +190,24 @@ static inline int unify(int key)
273 190
 
274 191
 int parse_param_name(str* _s, dig_par_t* _type)
275 192
 {
276
-	register char* p;
277
-	register int val;
193
+        register char* p;
194
+        register int val;
278 195
 	char* end;
279
-
196
+	
280 197
 	end = _s->s + _s->len;
281
-
198
+	
282 199
 	p = _s->s;
283 200
 	val = READ(p);
284
-
201
+	
285 202
 	if (_s->len < 4) {
286 203
 		goto other;
287 204
 	}
288
-
289
-	switch(val) {
205
+	
206
+        switch(LOWER_DWORD(val)) {
290 207
 	FIRST_QUATERNIONS;
291 208
 	default:
292 209
 		PARSE_SHORT;
293
-
294
-		val = unify(val);
295
-		switch(val) {
296
-		FIRST_QUATERNIONS;
297
-		default: goto other;
298
-		}
210
+		goto other;
299 211
         }
300 212
 
301 213
  end:
... ...
@@ -319,67 +231,3 @@ int parse_param_name(str* _s, dig_par_t* _type)
319 231
 	}
320 232
 }
321 233
 
322
-
323
-/* Number of distinct keys */
324
-#define NUM_KEYS  160
325
-
326
-/* Number of distinct values */
327
-#define NUM_VALS 10
328
-
329
-
330
-/*
331
- * Create synonym-less (precalculated) hash table
332
- */
333
-void init_digest_htable(void)
334
-{
335
-	int i, j, k;
336
-
337
-	unsigned int init_val[NUM_VALS] = {
338
-		_user_, _name_, _real_, _nonc_,
339
-		_resp_, _onse_, _cnon_, _opaq_,
340
-		_algo_, _rith_
341
-	};
342
-
343
-	unsigned int key_nums[NUM_VALS] = {
344
-		16, 16, 16, 16, 16,
345
-		16, 16, 16, 16, 16
346
-	};
347
-	
348
-	unsigned int init_key[NUM_KEYS] = {
349
-		_user_, _useR_, _usEr_, _usER_, _uSer_, _uSeR_, _uSEr_, _uSER_, 
350
-		_User_, _UseR_, _UsEr_, _UsER_, _USer_, _USeR_, _USEr_, _USER_, 
351
-		_name_, _namE_, _naMe_, _naME_, _nAme_, _nAmE_, _nAMe_, _nAME_, 
352
-		_Name_, _NamE_, _NaMe_, _NaME_, _NAme_, _NAmE_, _NAMe_, _NAME_, 
353
-		_real_, _reaL_, _reAl_, _reAL_, _rEal_, _rEaL_, _rEAl_, _rEAL_, 
354
-		_Real_, _ReaL_, _ReAl_, _ReAL_, _REal_, _REaL_, _REAl_, _REAL_, 
355
-		_nonc_, _nonC_, _noNc_, _noNC_, _nOnc_, _nOnC_, _nONc_, _nONC_, 
356
-		_Nonc_, _NonC_, _NoNc_, _NoNC_, _NOnc_, _NOnC_, _NONc_, _NONC_, 
357
-		_resp_, _resP_, _reSp_, _reSP_, _rEsp_, _rEsP_, _rESp_, _rESP_, 
358
-		_Resp_, _ResP_, _ReSp_, _ReSP_, _REsp_, _REsP_, _RESp_, _RESP_, 
359
-		_onse_, _onsE_, _onSe_, _onSE_, _oNse_, _oNsE_, _oNSe_, _oNSE_, 
360
-		_Onse_, _OnsE_, _OnSe_, _OnSE_, _ONse_, _ONsE_, _ONSe_, _ONSE_, 
361
-		_cnon_, _cnoN_, _cnOn_, _cnON_, _cNon_, _cNoN_, _cNOn_, _cNON_, 
362
-		_Cnon_, _CnoN_, _CnOn_, _CnON_, _CNon_, _CNoN_, _CNOn_, _CNON_, 
363
-		_opaq_, _opaQ_, _opAq_, _opAQ_, _oPaq_, _oPaQ_, _oPAq_, _oPAQ_, 
364
-		_Opaq_, _OpaQ_, _OpAq_, _OpAQ_, _OPaq_, _OPaQ_, _OPAq_, _OPAQ_, 
365
-		_algo_, _algO_, _alGo_, _alGO_, _aLgo_, _aLgO_, _aLGo_, _aLGO_, 
366
-		_Algo_, _AlgO_, _AlGo_, _AlGO_, _ALgo_, _ALgO_, _ALGo_, _ALGO_, 
367
-		_rith_, _ritH_, _riTh_, _riTH_, _rIth_, _rItH_, _rITh_, _rITH_, 
368
-		_Rith_, _RitH_, _RiTh_, _RiTH_, _RIth_, _RItH_, _RITh_, _RITH_
369
-	};
370
-
371
-
372
-	     /* Mark all elements as empty */
373
-	for(i = 0; i < HASH_TABLE_SIZE; i++) {
374
-		set_entry(HASH_EMPTY, HASH_EMPTY);
375
-	}
376
-
377
-	k = 0;
378
-
379
-	     /* Initialize hash table content */
380
-	for(i = 0; i < NUM_VALS; i++) {
381
-		for(j = 0; j < key_nums[i]; j++) {
382
-			set_entry(init_key[k++], init_val[i]);
383
-		}
384
-	}
385
-}
... ...
@@ -57,11 +57,4 @@ typedef enum dig_par {
57 57
  */
58 58
 int parse_param_name(str* _s, dig_par_t* _type);
59 59
 
60
-
61
-/*
62
- * Initialize hash table
63
- */
64
-void init_digest_htable(void);
65
-
66
-
67 60
 #endif /* PARAM_PARSER_H */