Lines Matching refs:hptr

334     E_GMP_RSA_CTX *hptr = RSA_get_ex_data(rsa, hndidx_rsa);
335 if (hptr)
336 return hptr;
337 hptr = OPENSSL_malloc(sizeof(E_GMP_RSA_CTX));
338 if (!hptr)
344 mpz_init(hptr->n);
345 mpz_init(hptr->d);
346 mpz_init(hptr->e);
347 mpz_init(hptr->p);
348 mpz_init(hptr->q);
349 mpz_init(hptr->dmp1);
350 mpz_init(hptr->dmq1);
351 mpz_init(hptr->iqmp);
352 mpz_init(hptr->r0);
353 mpz_init(hptr->r1);
354 mpz_init(hptr->I0);
355 mpz_init(hptr->m1);
356 if (!bn2gmp(rsa->n, hptr->n) || !bn2gmp(rsa->e, hptr->e))
360 hptr->public_only = 1;
361 return hptr;
363 if (!bn2gmp(rsa->d, hptr->d) || !bn2gmp(rsa->p, hptr->p) ||
364 !bn2gmp(rsa->q, hptr->q) || !bn2gmp(rsa->dmp1, hptr->dmp1) ||
365 !bn2gmp(rsa->dmq1, hptr->dmq1) || !bn2gmp(rsa->iqmp, hptr->iqmp))
367 hptr->public_only = 0;
368 RSA_set_ex_data(rsa, hndidx_rsa, hptr);
369 return hptr;
371 mpz_clear(hptr->n);
372 mpz_clear(hptr->d);
373 mpz_clear(hptr->e);
374 mpz_clear(hptr->p);
375 mpz_clear(hptr->q);
376 mpz_clear(hptr->dmp1);
377 mpz_clear(hptr->dmq1);
378 mpz_clear(hptr->iqmp);
379 mpz_clear(hptr->r0);
380 mpz_clear(hptr->r1);
381 mpz_clear(hptr->I0);
382 mpz_clear(hptr->m1);
383 OPENSSL_free(hptr);
389 E_GMP_RSA_CTX *hptr = RSA_get_ex_data(rsa, hndidx_rsa);
390 if (!hptr)
392 mpz_clear(hptr->n);
393 mpz_clear(hptr->d);
394 mpz_clear(hptr->e);
395 mpz_clear(hptr->p);
396 mpz_clear(hptr->q);
397 mpz_clear(hptr->dmp1);
398 mpz_clear(hptr->dmq1);
399 mpz_clear(hptr->iqmp);
400 mpz_clear(hptr->r0);
401 mpz_clear(hptr->r1);
402 mpz_clear(hptr->I0);
403 mpz_clear(hptr->m1);
404 OPENSSL_free(hptr);
412 E_GMP_RSA_CTX *hptr;
415 hptr = e_gmp_get_rsa(rsa);
416 if (!hptr) {
420 if (hptr->public_only) {
426 if (!bn2gmp(I, hptr->I0))
436 mpz_mod(hptr->r1, hptr->I0, hptr->q);
437 mpz_powm(hptr->m1, hptr->r1, hptr->dmq1, hptr->q);
439 mpz_mod(hptr->r1, hptr->I0, hptr->p);
440 mpz_powm(hptr->r0, hptr->r1, hptr->dmp1, hptr->p);
442 mpz_sub(hptr->r0, hptr->r0, hptr->m1);
444 if (mpz_sgn(hptr->r0) < 0)
445 mpz_add(hptr->r0, hptr->r0, hptr->p);
446 mpz_mul(hptr->r1, hptr->r0, hptr->iqmp);
447 mpz_mod(hptr->r0, hptr->r1, hptr->p);
449 if (mpz_sgn(hptr->r0) < 0)
450 mpz_add(hptr->r0, hptr->r0, hptr->p);
451 mpz_mul(hptr->r1, hptr->r0, hptr->q);
452 mpz_add(hptr->r0, hptr->r1, hptr->m1);
455 if (gmp2bn(hptr->r0, r))