Lines Matching refs:rsa

29  *     rsa  Object used to store primes p & q.
57 int ossl_rsa_fips186_4_gen_prob_primes(RSA *rsa, RSA_ACVP_TEST *test,
115 if (rsa->p == NULL)
116 rsa->p = BN_secure_new();
117 if (rsa->q == NULL)
118 rsa->q = BN_secure_new();
119 if (rsa->p == NULL || rsa->q == NULL)
121 BN_set_flags(rsa->p, BN_FLG_CONSTTIME);
122 BN_set_flags(rsa->q, BN_FLG_CONSTTIME);
125 if (!ossl_bn_rsa_fips186_4_gen_prob_primes(rsa->p, Xpo, p1, p2, Xp, Xp1, Xp2,
130 if (!ossl_bn_rsa_fips186_4_gen_prob_primes(rsa->q, Xqo, q1, q2, Xq, Xq1,
142 ok = ossl_rsa_check_pminusq_diff(tmp, rsa->p, rsa->q, nbits);
149 rsa->dirty_cnt++;
222 * rsa An rsa object.
232 int ossl_rsa_sp800_56b_derive_params_from_pq(RSA *rsa, int nbits,
254 if (ossl_rsa_get_lcm(ctx, rsa->p, rsa->q, lcm, gcd, p1, q1, p1q1) != 1)
258 BN_free(rsa->e);
259 rsa->e = BN_dup(e);
260 if (rsa->e == NULL)
263 BN_clear_free(rsa->d);
265 rsa->d = BN_secure_new();
266 if (rsa->d == NULL)
268 BN_set_flags(rsa->d, BN_FLG_CONSTTIME);
269 if (BN_mod_inverse(rsa->d, e, lcm, ctx) == NULL)
273 if (BN_num_bits(rsa->d) <= (nbits >> 1)) {
279 if (rsa->n == NULL)
280 rsa->n = BN_new();
281 if (rsa->n == NULL || !BN_mul(rsa->n, rsa->p, rsa->q, ctx))
285 if (rsa->dmp1 == NULL)
286 rsa->dmp1 = BN_secure_new();
287 if (rsa->dmp1 == NULL)
289 BN_set_flags(rsa->dmp1, BN_FLG_CONSTTIME);
290 if (!BN_mod(rsa->dmp1, rsa->d, p1, ctx))
294 if (rsa->dmq1 == NULL)
295 rsa->dmq1 = BN_secure_new();
296 if (rsa->dmq1 == NULL)
298 BN_set_flags(rsa->dmq1, BN_FLG_CONSTTIME);
299 if (!BN_mod(rsa->dmq1, rsa->d, q1, ctx))
303 BN_free(rsa->iqmp);
304 rsa->iqmp = BN_secure_new();
305 if (rsa->iqmp == NULL)
307 BN_set_flags(rsa->iqmp, BN_FLG_CONSTTIME);
308 if (BN_mod_inverse(rsa->iqmp, rsa->q, rsa->p, ctx) == NULL)
311 rsa->dirty_cnt++;
315 BN_free(rsa->e);
316 rsa->e = NULL;
317 BN_free(rsa->d);
318 rsa->d = NULL;
319 BN_free(rsa->n);
320 rsa->n = NULL;
321 BN_free(rsa->iqmp);
322 rsa->iqmp = NULL;
323 BN_free(rsa->dmq1);
324 rsa->dmq1 = NULL;
325 BN_free(rsa->dmp1);
326 rsa->dmp1 = NULL;
350 * rsa The rsa object.
356 int ossl_rsa_sp800_56b_generate_key(RSA *rsa, int nbits, const BIGNUM *efixed,
367 info = rsa->acvp_test;
375 if (!rsa_validate_rng_strength(RAND_get0_private(rsa->libctx), nbits))
378 ctx = BN_CTX_new_ex(rsa->libctx);
394 if (!ossl_rsa_fips186_4_gen_prob_primes(rsa, info, nbits, e, ctx, cb))
398 if (info == NULL && BN_cmp(rsa->p, rsa->q) < 0) {
399 tmp = rsa->p;
400 rsa->p = rsa->q;
401 rsa->q = tmp;
405 ok = ossl_rsa_sp800_56b_derive_params_from_pq(rsa, nbits, e, ctx);
414 ret = ossl_rsa_sp800_56b_pairwise_test(rsa, ctx);
428 int ossl_rsa_sp800_56b_pairwise_test(RSA *rsa, BN_CTX *ctx)
441 && BN_mod_exp(tmp, k, rsa->e, rsa->n, ctx)
442 && BN_mod_exp(tmp, tmp, rsa->d, rsa->n, ctx)