Skip to content

Commit 62068b6

Browse files
committed
A bit more compatibily
1 parent d21ecb6 commit 62068b6

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

src/ngx_ssl_ja3.c

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ static const unsigned short GREASE[] = {
5050
static int
5151
ngx_ssl_ja3_is_ext_greased(int id)
5252
{
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) {
5455
if (id == GREASE[i]) {
5556
return 1;
5657
}
@@ -95,9 +96,10 @@ static const int nid_list[] = {
9596
static unsigned short
9697
ngx_ssl_ja3_nid_to_cid(int nid)
9798
{
99+
unsigned char i;
98100
unsigned char sz = (sizeof(nid_list) / sizeof(nid_list[0]));
99101

100-
for (unsigned char i = 0; i < sz; i++) {
102+
for (i = 0; i < sz; i++) {
101103
if (nid == nid_list[i]) {
102104
return i+1;
103105
}
@@ -124,6 +126,7 @@ ngx_ssj_ja3_num_digits(int n)
124126
static void
125127
ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
126128
{
129+
size_t i;
127130
/* Version */
128131
ngx_log_debug1(NGX_LOG_DEBUG_EVENT,
129132
pool->log, 0, "ssl_ja3: Version: %d\n", ja3->version);
@@ -133,7 +136,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
133136
pool->log, 0, "ssl_ja3: ciphers: length: %d\n",
134137
ja3->ciphers_sz);
135138

136-
for (size_t i = 0; i < ja3->ciphers_sz; ++i) {
139+
for (i = 0; i < ja3->ciphers_sz; ++i) {
137140
ngx_log_debug2(NGX_LOG_DEBUG_EVENT,
138141
pool->log, 0, "ssl_ja3: | cipher: 0x%04uxD -> %d",
139142
ja3->ciphers[i],
@@ -146,7 +149,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
146149
pool->log, 0, "ssl_ja3: extensions: length: %d\n",
147150
ja3->extensions_sz);
148151

149-
for (size_t i = 0; i < ja3->extensions_sz; ++i) {
152+
for (i = 0; i < ja3->extensions_sz; ++i) {
150153
ngx_log_debug2(NGX_LOG_DEBUG_EVENT,
151154
pool->log, 0, "ssl_ja3: | extension: 0x%04uxD -> %d",
152155
ja3->extensions[i],
@@ -159,7 +162,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
159162
pool->log, 0, "ssl_ja3: curves: length: %d\n",
160163
ja3->curves_sz);
161164

162-
for (size_t i = 0; i < ja3->curves_sz; ++i) {
165+
for (i = 0; i < ja3->curves_sz; ++i) {
163166
ngx_log_debug2(NGX_LOG_DEBUG_EVENT,
164167
pool->log, 0, "ssl_ja3: | curves: 0x%04uxD -> %d",
165168
ja3->curves[i],
@@ -171,7 +174,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
171174
ngx_log_debug1(NGX_LOG_DEBUG_EVENT,
172175
pool->log, 0, "ssl_ja3: formats: length: %d\n",
173176
ja3->point_formats_sz);
174-
for (size_t i = 0; i < ja3->point_formats_sz; ++i) {
177+
for (i = 0; i < ja3->point_formats_sz; ++i) {
175178
ngx_log_debug1(NGX_LOG_DEBUG_EVENT,
176179
pool->log, 0, "ssl_ja3: | format: %d",
177180
ja3->point_formats[i]
@@ -184,6 +187,7 @@ ngx_ssl_ja3_detail_print(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3)
184187
void
185188
ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
186189
{
190+
size_t i;
187191
size_t len = 0, cur = 0;
188192

189193
if (pool == NULL || ja3 == NULL || out == NULL) {
@@ -194,31 +198,31 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
194198
++len; /* ',' separator */
195199

196200
if (ja3->ciphers_sz) {
197-
for (size_t i = 0; i < ja3->ciphers_sz; ++i) {
201+
for (i = 0; i < ja3->ciphers_sz; ++i) {
198202
len += ngx_ssj_ja3_num_digits(ja3->ciphers[i]); /* cipher [i] */
199203
}
200204
len += (ja3->ciphers_sz - 1); /* '-' separators */
201205
}
202206
++len; /* ',' separator */
203207

204208
if (ja3->extensions_sz) {
205-
for (size_t i = 0; i < ja3->extensions_sz; ++i) {
209+
for (i = 0; i < ja3->extensions_sz; ++i) {
206210
len += ngx_ssj_ja3_num_digits(ja3->extensions[i]); /* ext [i] */
207211
}
208212
len += (ja3->extensions_sz - 1); /* '-' separators */
209213
}
210214
++len; /* ',' separator */
211215

212216
if (ja3->curves_sz) {
213-
for (size_t i = 0; i < ja3->curves_sz; ++i) {
217+
for (i = 0; i < ja3->curves_sz; ++i) {
214218
len += ngx_ssj_ja3_num_digits(ja3->curves[i]); /* curves [i] */
215219
}
216220
len += (ja3->curves_sz - 1); /* '-' separators */
217221
}
218222
++len; /* ',' separator */
219223

220224
if (ja3->point_formats_sz) {
221-
for (size_t i = 0; i < ja3->point_formats_sz; ++i) {
225+
for (i = 0; i < ja3->point_formats_sz; ++i) {
222226
len += ngx_ssj_ja3_num_digits(ja3->point_formats[i]); /* fmt [i] */
223227
}
224228
len += (ja3->point_formats_sz - 1); /* '-' separators */
@@ -232,7 +236,7 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
232236
cur += len;
233237

234238
if (ja3->ciphers_sz) {
235-
for (size_t i = 0; i < ja3->ciphers_sz; ++i) {
239+
for (i = 0; i < ja3->ciphers_sz; ++i) {
236240
if (i > 0) {
237241
ngx_snprintf(out->data + (cur++), 1, "-");
238242
}
@@ -244,7 +248,7 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
244248
ngx_snprintf(out->data + (cur++), 1, ",");
245249

246250
if (ja3->extensions_sz) {
247-
for (size_t i = 0; i < ja3->extensions_sz; i++) {
251+
for (i = 0; i < ja3->extensions_sz; i++) {
248252
if (i > 0) {
249253
ngx_snprintf(out->data + (cur++), 1, "-");
250254
}
@@ -256,7 +260,7 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
256260
ngx_snprintf(out->data + (cur++), 1, ",");
257261

258262
if (ja3->curves_sz) {
259-
for (size_t i = 0; i < ja3->curves_sz; i++) {
263+
for (i = 0; i < ja3->curves_sz; i++) {
260264
if (i > 0) {
261265
ngx_snprintf(out->data + (cur++), 1, "-");
262266
}
@@ -268,7 +272,7 @@ ngx_ssl_ja3_fp(ngx_pool_t *pool, ngx_ssl_ja3_t *ja3, ngx_str_t *out)
268272
ngx_snprintf(out->data + (cur++), 1, ",");
269273

270274
if (ja3->point_formats_sz) {
271-
for (size_t i = 0; i < ja3->point_formats_sz; i++) {
275+
for (i = 0; i < ja3->point_formats_sz; i++) {
272276
if (i > 0) {
273277
ngx_snprintf(out->data + (cur++), 1, "-");
274278
}
@@ -296,6 +300,7 @@ int
296300
ngx_ssl_ja3(ngx_connection_t *c, ngx_pool_t *pool, ngx_ssl_ja3_t *ja3) {
297301

298302
SSL *ssl;
303+
size_t i;
299304
size_t len = 0;
300305
unsigned short us = 0;
301306

@@ -326,7 +331,7 @@ ngx_ssl_ja3(ngx_connection_t *c, ngx_pool_t *pool, ngx_ssl_ja3_t *ja3) {
326331
return NGX_DECLINED;
327332
}
328333
/* Filter out GREASE extensions */
329-
for (size_t i = 0; i < c->ssl->ciphers_sz; ++i) {
334+
for (i = 0; i < c->ssl->ciphers_sz; ++i) {
330335
us = ntohs(c->ssl->ciphers[i]);
331336
if (! ngx_ssl_ja3_is_ext_greased(us)) {
332337
ja3->ciphers[ja3->ciphers_sz++] = us;
@@ -343,7 +348,7 @@ ngx_ssl_ja3(ngx_connection_t *c, ngx_pool_t *pool, ngx_ssl_ja3_t *ja3) {
343348
if (ja3->extensions == NULL) {
344349
return NGX_DECLINED;
345350
}
346-
for (size_t i = 0; i < c->ssl->extensions_size; ++i) {
351+
for (i = 0; i < c->ssl->extensions_size; ++i) {
347352
if (! ngx_ssl_ja3_is_ext_greased(c->ssl->extensions[i])) {
348353
ja3->extensions[ja3->extensions_sz++] = c->ssl->extensions[i];
349354
}
@@ -359,7 +364,7 @@ ngx_ssl_ja3(ngx_connection_t *c, ngx_pool_t *pool, ngx_ssl_ja3_t *ja3) {
359364
if (ja3->curves == NULL) {
360365
return NGX_DECLINED;
361366
}
362-
for (size_t i = 0; i < c->ssl->curves_sz; i++) {
367+
for (i = 0; i < c->ssl->curves_sz; i++) {
363368
us = ntohs(c->ssl->curves[i]);
364369
if (! ngx_ssl_ja3_is_ext_greased(us)) {
365370
ja3->curves[ja3->curves_sz++] = ngx_ssl_ja3_nid_to_cid(c->ssl->curves[i]);

0 commit comments

Comments
 (0)