From: Ian Jackson Date: Sun, 6 Oct 2019 20:15:14 +0000 (+0100) Subject: rsa1: rsapriv_apply: Initialise st mpz's early X-Git-Tag: v0.6.0~182 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=cc646614cf8a3ba28e61995ab8451e0549c488e2;hp=db520a2b8707ea724eb8ce0f8b411f42dce9dba8;p=secnet.git rsa1: rsapriv_apply: Initialise st mpz's early This will make it easier to support non-fatal early return. No overall functional change. Signed-off-by: Ian Jackson --- diff --git a/rsa.c b/rsa.c index 2bb6f55..b6bad7b 100644 --- a/rsa.c +++ b/rsa.c @@ -374,6 +374,13 @@ static list_t *rsapriv_apply(closure_t *self, struct cloc loc, dict_t *context, st->ops.dispose=0; /* xxx */ st->loc=loc; + mpz_init(&st->n); + mpz_init(&st->q); + mpz_init(&st->p); + mpz_init(&st->dp); + mpz_init(&st->dq); + mpz_init(&st->w); + /* Argument is filename pointing to SSH1 private key file */ i=list_elem(args,0); if (i) { @@ -426,7 +433,6 @@ static list_t *rsapriv_apply(closure_t *self, struct cloc loc, dict_t *context, if (fread(b,length,1,f) != 1) { LDFATAL_FILE("rsa-private","error reading modulus\n"); } - mpz_init(&st->n); read_mpbin(&st->n,b,length); FREE(b); length=(keyfile_get_short(loc,f)+7)/8; @@ -495,7 +501,6 @@ static list_t *rsapriv_apply(closure_t *self, struct cloc loc, dict_t *context, LDFATAL_FILE("rsa-private", "error reading q value\n"); } - mpz_init(&st->q); read_mpbin(&st->q,b,length); FREE(b); /* Read p (the larger of the two primes) */ @@ -509,7 +514,6 @@ static list_t *rsapriv_apply(closure_t *self, struct cloc loc, dict_t *context, LDFATAL_FILE("rsa-private", "error reading p value\n"); } - mpz_init(&st->p); read_mpbin(&st->p,b,length); FREE(b); @@ -566,9 +570,6 @@ static list_t *rsapriv_apply(closure_t *self, struct cloc loc, dict_t *context, * dq == d mod (q-1) similarly mod q * w == iqmp * q so that w == 0 mod q, and w == 1 mod p */ - mpz_init(&st->dp); - mpz_init(&st->dq); - mpz_init(&st->w); mpz_sub_ui(&tmp, &st->p, 1); mpz_mod(&st->dp, &d, &tmp); mpz_sub_ui(&tmp, &st->q, 1);