@@ -50,7 +50,8 @@ static const unsigned short GREASE[] = {
50
50
static int
51
51
ngx_ssl_ja3_is_ext_greased (int id )
52
52
{
53
- for (size_t i = 0 ; i < (sizeof (GREASE ) / sizeof (GREASE [0 ])); ++ i ) {
53
+ size_t i ;
54
+ for (i = 0 ; i < (sizeof (GREASE ) / sizeof (GREASE [0 ])); ++ i ) {
54
55
if (id == GREASE [i ]) {
55
56
return 1 ;
56
57
}
@@ -96,9 +97,10 @@ static const int nid_list[] = {
96
97
static unsigned short
97
98
ngx_ssl_ja3_nid_to_cid (int nid )
98
99
{
100
+ unsigned char i ;
99
101
unsigned char sz = (sizeof (nid_list ) / sizeof (nid_list [0 ]));
100
102
101
- for (unsigned char i = 0 ; i < sz ; i ++ ) {
103
+ for (i = 0 ; i < sz ; i ++ ) {
102
104
if (nid == nid_list [i ]) {
103
105
return i + 1 ;
104
106
}
@@ -125,6 +127,7 @@ ngx_ssj_ja3_num_digits(int n)
125
127
static void
126
128
ngx_ssl_ja3_detail_print (ngx_pool_t * pool , ngx_ssl_ja3_t * ja3 )
127
129
{
130
+ size_t i ;
128
131
/* Version */
129
132
ngx_log_debug1 (NGX_LOG_DEBUG_EVENT ,
130
133
pool -> log , 0 , "ssl_ja3: Version: %d\n" , ja3 -> version );
@@ -134,7 +137,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
134
137
pool -> log , 0 , "ssl_ja3: ciphers: length: %d\n" ,
135
138
ja3 -> ciphers_sz );
136
139
137
- for (size_t i = 0 ; i < ja3 -> ciphers_sz ; ++ i ) {
140
+ for (i = 0 ; i < ja3 -> ciphers_sz ; ++ i ) {
138
141
ngx_log_debug2 (NGX_LOG_DEBUG_EVENT ,
139
142
pool -> log , 0 , "ssl_ja3: | cipher: 0x%04uxD -> %d" ,
140
143
ja3 -> ciphers [i ],
@@ -147,7 +150,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
147
150
pool -> log , 0 , "ssl_ja3: extensions: length: %d\n" ,
148
151
ja3 -> extensions_sz );
149
152
150
- for (size_t i = 0 ; i < ja3 -> extensions_sz ; ++ i ) {
153
+ for (i = 0 ; i < ja3 -> extensions_sz ; ++ i ) {
151
154
ngx_log_debug2 (NGX_LOG_DEBUG_EVENT ,
152
155
pool -> log , 0 , "ssl_ja3: | extension: 0x%04uxD -> %d" ,
153
156
ja3 -> extensions [i ],
@@ -160,7 +163,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
160
163
pool -> log , 0 , "ssl_ja3: curves: length: %d\n" ,
161
164
ja3 -> curves_sz );
162
165
163
- for (size_t i = 0 ; i < ja3 -> curves_sz ; ++ i ) {
166
+ for (i = 0 ; i < ja3 -> curves_sz ; ++ i ) {
164
167
ngx_log_debug2 (NGX_LOG_DEBUG_EVENT ,
165
168
pool -> log , 0 , "ssl_ja3: | curves: 0x%04uxD -> %d" ,
166
169
ja3 -> curves [i ],
@@ -172,7 +175,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
172
175
ngx_log_debug1 (NGX_LOG_DEBUG_EVENT ,
173
176
pool -> log , 0 , "ssl_ja3: formats: length: %d\n" ,
174
177
ja3 -> point_formats_sz );
175
- for (size_t i = 0 ; i < ja3 -> point_formats_sz ; ++ i ) {
178
+ for (i = 0 ; i < ja3 -> point_formats_sz ; ++ i ) {
176
179
ngx_log_debug1 (NGX_LOG_DEBUG_EVENT ,
177
180
pool -> log , 0 , "ssl_ja3: | format: %d" ,
178
181
ja3 -> point_formats [i ]
@@ -185,6 +188,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
185
188
void
186
189
ngx_ssl_ja3_fp (ngx_pool_t * pool , ngx_ssl_ja3_t * ja3 , ngx_str_t * out )
187
190
{
191
+ size_t i ;
188
192
size_t len = 0 , cur = 0 ;
189
193
190
194
if (pool == NULL || ja3 == NULL || out == NULL ) {
@@ -195,31 +199,31 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
195
199
++ len ; /* ',' separator */
196
200
197
201
if (ja3 -> ciphers_sz ) {
198
- for (size_t i = 0 ; i < ja3 -> ciphers_sz ; ++ i ) {
202
+ for (i = 0 ; i < ja3 -> ciphers_sz ; ++ i ) {
199
203
len += ngx_ssj_ja3_num_digits (ja3 -> ciphers [i ]); /* cipher [i] */
200
204
}
201
205
len += (ja3 -> ciphers_sz - 1 ); /* '-' separators */
202
206
}
203
207
++ len ; /* ',' separator */
204
208
205
209
if (ja3 -> extensions_sz ) {
206
- for (size_t i = 0 ; i < ja3 -> extensions_sz ; ++ i ) {
210
+ for (i = 0 ; i < ja3 -> extensions_sz ; ++ i ) {
207
211
len += ngx_ssj_ja3_num_digits (ja3 -> extensions [i ]); /* ext [i] */
208
212
}
209
213
len += (ja3 -> extensions_sz - 1 ); /* '-' separators */
210
214
}
211
215
++ len ; /* ',' separator */
212
216
213
217
if (ja3 -> curves_sz ) {
214
- for (size_t i = 0 ; i < ja3 -> curves_sz ; ++ i ) {
218
+ for (i = 0 ; i < ja3 -> curves_sz ; ++ i ) {
215
219
len += ngx_ssj_ja3_num_digits (ja3 -> curves [i ]); /* curves [i] */
216
220
}
217
221
len += (ja3 -> curves_sz - 1 ); /* '-' separators */
218
222
}
219
223
++ len ; /* ',' separator */
220
224
221
225
if (ja3 -> point_formats_sz ) {
222
- for (size_t i = 0 ; i < ja3 -> point_formats_sz ; ++ i ) {
226
+ for (i = 0 ; i < ja3 -> point_formats_sz ; ++ i ) {
223
227
len += ngx_ssj_ja3_num_digits (ja3 -> point_formats [i ]); /* fmt [i] */
224
228
}
225
229
len += (ja3 -> point_formats_sz - 1 ); /* '-' separators */
@@ -233,7 +237,7 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
233
237
cur += len ;
234
238
235
239
if (ja3 -> ciphers_sz ) {
236
- for (size_t i = 0 ; i < ja3 -> ciphers_sz ; ++ i ) {
240
+ for (i = 0 ; i < ja3 -> ciphers_sz ; ++ i ) {
237
241
if (i > 0 ) {
238
242
ngx_snprintf (out -> data + (cur ++ ), 1 , "-" );
239
243
}
@@ -245,7 +249,7 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
245
249
ngx_snprintf (out -> data + (cur ++ ), 1 , "," );
246
250
247
251
if (ja3 -> extensions_sz ) {
248
- for (size_t i = 0 ; i < ja3 -> extensions_sz ; i ++ ) {
252
+ for (i = 0 ; i < ja3 -> extensions_sz ; i ++ ) {
249
253
if (i > 0 ) {
250
254
ngx_snprintf (out -> data + (cur ++ ), 1 , "-" );
251
255
}
@@ -257,7 +261,7 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
257
261
ngx_snprintf (out -> data + (cur ++ ), 1 , "," );
258
262
259
263
if (ja3 -> curves_sz ) {
260
- for (size_t i = 0 ; i < ja3 -> curves_sz ; i ++ ) {
264
+ for (i = 0 ; i < ja3 -> curves_sz ; i ++ ) {
261
265
if (i > 0 ) {
262
266
ngx_snprintf (out -> data + (cur ++ ), 1 , "-" );
263
267
}
@@ -269,7 +273,7 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
269
273
ngx_snprintf (out -> data + (cur ++ ), 1 , "," );
270
274
271
275
if (ja3 -> point_formats_sz ) {
272
- for (size_t i = 0 ; i < ja3 -> point_formats_sz ; i ++ ) {
276
+ for (i = 0 ; i < ja3 -> point_formats_sz ; i ++ ) {
273
277
if (i > 0 ) {
274
278
ngx_snprintf (out -> data + (cur ++ ), 1 , "-" );
275
279
}
297
301
ngx_ssl_ja3 (ngx_connection_t * c , ngx_pool_t * pool , ngx_ssl_ja3_t * ja3 ) {
298
302
299
303
SSL * ssl ;
304
+ size_t i ;
300
305
size_t len = 0 ;
301
306
unsigned short us = 0 ;
302
307
@@ -327,7 +332,7 @@ ngx_ssl_ja3(ngx_connection_t *c, ngx_pool_t *pool, ngx_ssl_ja3_t *ja3) {
327
332
return NGX_DECLINED ;
328
333
}
329
334
/* Filter out GREASE extensions */
330
- for (size_t i = 0 ; i < c -> ssl -> ciphers_sz ; ++ i ) {
335
+ for (i = 0 ; i < c -> ssl -> ciphers_sz ; ++ i ) {
331
336
us = ntohs (c -> ssl -> ciphers [i ]);
332
337
if (! ngx_ssl_ja3_is_ext_greased (us )) {
333
338
ja3 -> ciphers [ja3 -> ciphers_sz ++ ] = us ;
@@ -344,7 +349,7 @@ ngx_ssl_ja3(ngx_connection_t *c, ngx_pool_t *pool, ngx_ssl_ja3_t *ja3) {
344
349
if (ja3 -> extensions == NULL ) {
345
350
return NGX_DECLINED ;
346
351
}
347
- for (size_t i = 0 ; i < c -> ssl -> extensions_size ; ++ i ) {
352
+ for (i = 0 ; i < c -> ssl -> extensions_size ; ++ i ) {
348
353
if (! ngx_ssl_ja3_is_ext_greased (c -> ssl -> extensions [i ])) {
349
354
ja3 -> extensions [ja3 -> extensions_sz ++ ] = c -> ssl -> extensions [i ];
350
355
}
@@ -360,7 +365,7 @@ ngx_ssl_ja3(ngx_connection_t *c, ngx_pool_t *pool, ngx_ssl_ja3_t *ja3) {
360
365
if (ja3 -> curves == NULL ) {
361
366
return NGX_DECLINED ;
362
367
}
363
- for (size_t i = 0 ; i < c -> ssl -> curves_sz ; i ++ ) {
368
+ for (i = 0 ; i < c -> ssl -> curves_sz ; i ++ ) {
364
369
us = ntohs (c -> ssl -> curves [i ]);
365
370
if (! ngx_ssl_ja3_is_ext_greased (us )) {
366
371
ja3 -> curves [ja3 -> curves_sz ++ ] = ngx_ssl_ja3_nid_to_cid (c -> ssl -> curves [i ]);
0 commit comments