Lines Matching refs:ctx

24 int ossl_rsa_check_crt_components(const RSA *rsa, BN_CTX *ctx)
36 BN_CTX_start(ctx);
37 r = BN_CTX_get(ctx);
38 p1 = BN_CTX_get(ctx);
39 q1 = BN_CTX_get(ctx);
65 && BN_mod_mul(r, rsa->dmp1, rsa->e, p1, ctx)
68 && BN_mod_mul(r, rsa->dmq1, rsa->e, q1, ctx)
71 && BN_mod_mul(r, rsa->iqmp, rsa->q, rsa->p, ctx)
76 BN_CTX_end(ctx);
88 int ossl_rsa_check_prime_factor_range(const BIGNUM *p, int nbits, BN_CTX *ctx)
101 BN_CTX_start(ctx);
102 low = BN_CTX_get(ctx);
125 BN_CTX_end(ctx);
136 int ossl_rsa_check_prime_factor(BIGNUM *p, BIGNUM *e, int nbits, BN_CTX *ctx)
142 if (BN_check_prime(p, ctx, NULL) != 1
144 || ossl_rsa_check_prime_factor_range(p, nbits, ctx) != 1)
147 BN_CTX_start(ctx);
148 p1 = BN_CTX_get(ctx);
149 gcd = BN_CTX_get(ctx);
161 && BN_gcd(gcd, p1, e, ctx)
165 BN_CTX_end(ctx);
175 int ossl_rsa_check_private_exponent(const RSA *rsa, int nbits, BN_CTX *ctx)
184 BN_CTX_start(ctx);
185 r = BN_CTX_get(ctx);
186 p1 = BN_CTX_get(ctx);
187 q1 = BN_CTX_get(ctx);
188 lcm = BN_CTX_get(ctx);
189 p1q1 = BN_CTX_get(ctx);
190 gcd = BN_CTX_get(ctx);
204 && (ossl_rsa_get_lcm(ctx, rsa->p, rsa->q, lcm, gcd, p1, q1,
209 && BN_mod_mul(r, rsa->e, rsa->d, lcm, ctx)
217 BN_CTX_end(ctx);
265 int ossl_rsa_get_lcm(BN_CTX *ctx, const BIGNUM *p, const BIGNUM *q,
271 && BN_mul(p1q1, p1, q1, ctx) /* (p-1)(q-1) */
272 && BN_gcd(gcd, p1, q1, ctx)
273 && BN_div(lcm, NULL, p1q1, gcd, ctx); /* LCM((p-1, q-1)) */
285 BN_CTX *ctx = NULL;
317 ctx = BN_CTX_new_ex(rsa->libctx);
319 if (ctx == NULL || gcd == NULL)
326 if (!BN_gcd(gcd, rsa->n, ossl_bn_get0_small_factors(), ctx)
333 ret = ossl_bn_miller_rabin_is_prime(rsa->n, 5, ctx, NULL, 1, &status);
349 BN_CTX_free(ctx);
378 BN_CTX *ctx = NULL;
413 ctx = BN_CTX_new_ex(rsa->libctx);
414 if (ctx == NULL)
417 BN_CTX_start(ctx);
418 r = BN_CTX_get(ctx);
419 if (r == NULL || !BN_mul(r, rsa->p, rsa->q, ctx))
428 ret = ossl_rsa_check_prime_factor(rsa->p, rsa->e, nbits, ctx)
429 && ossl_rsa_check_prime_factor(rsa->q, rsa->e, nbits, ctx)
432 && ossl_rsa_check_private_exponent(rsa, nbits, ctx)
434 && ossl_rsa_check_crt_components(rsa, ctx);
440 BN_CTX_end(ctx);
441 BN_CTX_free(ctx);