8000 Use optimistic_yield() to support AsyncTCP calls · Adam5Wu/bearssl-esp8266@6f47501 · GitHub
[go: up one dir, main page]

Skip to content

Commit 6f47501

Browse files
Use optimistic_yield() to support AsyncTCP calls
Also removed unneeded yield()s since it's being pumped by the lowest level of EC handling.
1 parent a3d1197 commit 6f47501

File tree

5 files changed

+3
-30
lines changed

5 files changed

+3
-30
lines changed

src/ec/ec_prime_i15.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ run_code(jacobian *P1, const jacobian *P2,
480480
for (u = 0;; u ++) {
481481
unsigned op, d, a, b;
482482

483-
yield();
483+
optimistic_yield(10000);
484484

485485
op = code[u];
486486
if (op == 0) {

src/inner.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2358,7 +2358,7 @@ br_cpuid(uint32_t mask_eax, uint32_t mask_ebx,
23582358
#endif
23592359

23602360
#define _debugBearSSL (0)
2361-
extern void yield();
2361+
extern void optimistic_yield(uint32_t);
23622362
extern void br_stack_proxy_enter();
23632363
extern void *br_stack_proxy_alloc(size_t bytes);
23642364
extern void br_stack_proxy_exit();
@@ -2381,7 +2381,7 @@ br_cpuid(uint32_t mask_eax, uint32_t mask_ebx,
23812381
#define STACK_PROXY_EXIT()
23822382
#define STACK_PROXY_ALLOC(type, name, count) type name[count]
23832383
#define dumpstack()
2384-
#define yield()
2384+
#define optimistic_yield(ignored)
23852385
#endif
23862386

23872387

src/mac/hmac.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,8 @@ process_key(const br_hash_class **hc, void *ks,
5151
}
5252
memset(tmp + key_len, bb, blen - key_len);
5353
(*hc)->init(hc);
54-
yield();
5554
(*hc)->update(hc, tmp, blen);
56-
yield();
5755
(*hc)->state(hc, ks);
58-
yield();
5956
STACK_PROXY_EXIT();
6057
}
6158

src/ssl/ssl_hs_client.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,6 @@ verify_SKE_sig(br_ssl_client_context *ctx,
216216
unsigned char head[4];
217217
size_t hv_len;
218218

219-
yield();
220-
221219
xc = ctx->eng.x509ctx;
222220
pk = (*xc)->get_pkey(xc, NULL);
223221
br_multihash_zero(mhc);
@@ -250,8 +248,6 @@ verify_SKE_sig(br_ssl_client_context *ctx,
250248
hv_len = 36;
251249
}
252250

253-
yield();
254-
255251
if (use_rsa) {
256252
// unsigned char tmp[64];
257253
STACK_PROXY_ALLOC(unsigned char, tmp, 64);
@@ -303,8 +299,6 @@ make_pms_ecdh(br_ssl_client_context *ctx, unsigned ecdhe, int prf_id)
303299
size_t glen, olen, point_len, xoff, xlen;
304300
unsigned char mask;
305301

306-
yield();
307-
308302
if (ecdhe) {
309303
curve = ctx->eng.ecdhe_curve;
310304
point_src = ctx->eng.ecdhe_point;
@@ -339,8 +333,6 @@ make_pms_ecdh(br_ssl_client_context *ctx, unsigned ecdhe, int prf_id)
339333
key[0] &= mask;
340334
key[olen - 1] |= 0x01;
341335

342-
yield();
343-
344336
/*
345337
* Compute the common ECDH point, whose X coordinate is the
346338
* pre-master secret.
@@ -357,8 +349,6 @@ make_pms_ecdh(br_ssl_client_context *ctx, unsigned ecdhe, int prf_id)
357349
return -BR_ERR_INVALID_ALGORITHM;
358350
}
359351

360-
yield();
361-
362352
/*
363353
* The pre-master secret is the X coordinate.
364354
*/
@@ -368,8 +358,6 @@ make_pms_ecdh(br_ssl_client_context *ctx, unsigned ecdhe, int prf_id)
368358
ctx->eng.iec->mulgen(point, key, olen, curve);
369359
memcpy(ctx->eng.pad, point, glen);
370360

371-
yield();
372-
373361
STACK_PROXY_EXIT();
374362
return (int)glen;
375363
}

src/ssl/ssl_hs_client.t0

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,6 @@ verify_SKE_sig(br_ssl_client_context *ctx,
146146
unsigned char head[4];
147147
size_t hv_len;
148148

149-
yield();
150-
151149
xc = ctx->eng.x509ctx;
152150
pk = (*xc)->get_pkey(xc, NULL);
153151
br_multihash_zero(mhc);
@@ -180,8 +178,6 @@ verify_SKE_sig(br_ssl_client_context *ctx,
180178
hv_len = 36;
181179
}
182180

183-
yield();
184-
185181
if (use_rsa) {
186182
// unsigned char tmp[64];
187183
STACK_PROXY_ALLOC(unsigned char, tmp, 64);
@@ -233,8 +229,6 @@ make_pms_ecdh(br_ssl_client_context *ctx, unsigned ecdhe, int prf_id)
233229
size_t glen, olen, point_len, xoff, xlen;
234230
unsigned char mask;
235231

236-
yield();
237-
238232
if (ecdhe) {
239233
curve = ctx->eng.ecdhe_curve;
240234
point_src = ctx->eng.ecdhe_point;
@@ -269,8 +263,6 @@ make_pms_ecdh(br_ssl_client_context *ctx, unsigned ecdhe, int prf_id)
269263
key[0] &= mask;
270264
key[olen - 1] |= 0x01;
271265

272-
yield();
273-
274266
/*
275267
* Compute the common ECDH point, whose X coordinate is the
276268
* pre-master secret.
@@ -287,8 +279,6 @@ make_pms_ecdh(br_ssl_client_context *ctx, unsigned ecdhe, int prf_id)
287279
return -BR_ERR_INVALID_ALGORITHM;
288280
}
289281

290-
yield();
291-
292282
/*
293283
* The pre-master secret is the X coordinate.
294284
*/
@@ -298,8 +288,6 @@ make_pms_ecdh(br_ssl_client_context *ctx, unsigned ecdhe, int prf_id)
298288
ctx->eng.iec->mulgen(point, key, olen, curve);
299289
memcpy(ctx->eng.pad, point, glen);
300290

301-
yield();
302-
303291
STACK_PROXY_EXIT();
304292
return (int)glen;
305293
}

0 commit comments

Comments
 (0)
0