X-Git-Url: https://bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=src%2Fx509%2Fskey_decoder.c;h=be681ddbfa0731051587a23c8049d220f5a39a19;hp=6788145691d30a52f298b914268102d9469426c4;hb=44c79c1add4cd4a217b1dd77c8421c1d3a08dcef;hpb=3210f38e0491b39aec1ef419cb4114e9483089fb diff --git a/src/x509/skey_decoder.c b/src/x509/skey_decoder.c index 6788145..be681dd 100644 --- a/src/x509/skey_decoder.c +++ b/src/x509/skey_decoder.c @@ -177,7 +177,7 @@ static const uint8_t t0_codeblock[] = { 0x14, 0x35, 0x1C, 0x08, 0x20, 0x1C, 0x07, 0x20, 0x4E, 0x00, 0x01, 0x59, 0x14, 0x01, 0x81, 0x00, 0x0A, 0x06, 0x01, 0x00, 0x01, 0x81, 0x00, 0x08, 0x14, 0x05, 0x02, 0x28, 0x16, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, - 0x00, 0x0E, 0x06, 0x19, 0x02, 0x00, 0x23, 0x03, 0x00, 0x14, 0x01, 0x87, + 0x00, 0x0E, 0x06, 0x19, 0x02, 0x00, 0x23, 0x03, 0x00, 0x14, 0x01, 0x83, 0xFF, 0xFF, 0x7F, 0x0E, 0x06, 0x02, 0x29, 0x16, 0x01, 0x08, 0x0B, 0x20, 0x59, 0x1C, 0x07, 0x04, 0x60, 0x00, 0x00, 0x52, 0x4A, 0x00, 0x00, 0x57, 0x3C, 0x53, 0x00, 0x01, 0x53, 0x14, 0x05, 0x02, 0x2E, 0x16, 0x59, 0x14, @@ -285,6 +285,8 @@ name(void *ctx) \ T0_DEFENTRY(br_skey_decoder_init_main, 73) +#define T0_NEXT(t0ipp) (*(*(t0ipp)) ++) + void br_skey_decoder_run(void *t0ctx) { @@ -332,15 +334,17 @@ br_skey_decoder_run(void *t0ctx) #define T0_CO() do { \ goto t0_exit; \ } while (0) -#define T0_RET() break +#define T0_RET() goto t0_next dp = ((t0_context *)t0ctx)->dp; rp = ((t0_context *)t0ctx)->rp; ip = ((t0_context *)t0ctx)->ip; + goto t0_next; for (;;) { uint32_t t0x; - t0x = t0_parse7E_unsigned(&ip); + t0_next: + t0x = T0_NEXT(&ip); if (t0x < T0_INTERPRETED) { switch (t0x) { int32_t t0off;