From 0bd6dff7b219c59d89029a4ef05cc2ae5cadbdab Mon Sep 17 00:00:00 2001 From: Gorachya Date: Tue, 12 Mar 2019 23:55:34 -0700 Subject: [PATCH] add-docss --- crypto/sm9/sm9_rate.c | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) mode change 100755 => 100644 crypto/sm9/sm9_rate.c diff --git a/crypto/sm9/sm9_rate.c b/crypto/sm9/sm9_rate.c old mode 100755 new mode 100644 index 7f9ded50..913026f2 --- a/crypto/sm9/sm9_rate.c +++ b/crypto/sm9/sm9_rate.c @@ -2455,16 +2455,42 @@ static int fast_final_expo(fp12_t r, const fp12_t a, const BIGNUM *k, const BIGN fp12_t t; fp12_t t0; - if (!fp12_inv(t0, a, p, ctx) - || !fp12_fast_expo_p1(t, a, p, ctx) - || !fp12_mul(t, t0, t, p, ctx) - || !fp12_copy(t0, t) - || !fp12_fast_expo_p2(t, t, p, ctx) - || !fp12_mul(t, t0, t, p, ctx) - || !fp12_copy(t0, t)) { + fp12_init(t, ctx); + fp12_init(t0, ctx); + if (!fp12_copy(t, a)) { return 0; } + if (!fp12_copy(t0, a)) { + return 0; + } + + if (!fp12_inv(t0, t, p, ctx)) { + return 0; + } + if (!fp12_fast_expo_p1(t, t, p, ctx)) { + return 0; + } + if (!fp12_mul(t, t0, t, p, ctx)) { + return 0; + } + + if (!fp12_copy(t0, t)) { + return 0; + } + + if(!fp12_fast_expo_p2(t, t, p, ctx)){ + return 0; + } + + if (!fp12_mul(t, t0, t, p, ctx)) { + return 0; + } + + if (!fp12_copy(t0, t)) { + return 0; + } + n = BN_num_bits(k); for (i = n - 2; i >= 0; i--) { if (!fp12_sqr(t, t, p, ctx)) {