Latest update.
This commit is contained in:
+12
-3
@@ -325,6 +325,7 @@ int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
|
||||
if (d != NULL) {
|
||||
BN_clear_free(r->d);
|
||||
r->d = d;
|
||||
BN_set_flags(r->d, BN_FLG_CONSTTIME);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -342,10 +343,12 @@ int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
|
||||
if (p != NULL) {
|
||||
BN_clear_free(r->p);
|
||||
r->p = p;
|
||||
BN_set_flags(r->p, BN_FLG_CONSTTIME);
|
||||
}
|
||||
if (q != NULL) {
|
||||
BN_clear_free(r->q);
|
||||
r->q = q;
|
||||
BN_set_flags(r->q, BN_FLG_CONSTTIME);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -364,14 +367,17 @@ int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
|
||||
if (dmp1 != NULL) {
|
||||
BN_clear_free(r->dmp1);
|
||||
r->dmp1 = dmp1;
|
||||
BN_set_flags(r->dmp1, BN_FLG_CONSTTIME);
|
||||
}
|
||||
if (dmq1 != NULL) {
|
||||
BN_clear_free(r->dmq1);
|
||||
r->dmq1 = dmq1;
|
||||
BN_set_flags(r->dmq1, BN_FLG_CONSTTIME);
|
||||
}
|
||||
if (iqmp != NULL) {
|
||||
BN_clear_free(r->iqmp);
|
||||
r->iqmp = iqmp;
|
||||
BN_set_flags(r->iqmp, BN_FLG_CONSTTIME);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -403,12 +409,15 @@ int RSA_set0_multi_prime_params(RSA *r, BIGNUM *primes[], BIGNUM *exps[],
|
||||
if (pinfo == NULL)
|
||||
goto err;
|
||||
if (primes[i] != NULL && exps[i] != NULL && coeffs[i] != NULL) {
|
||||
BN_free(pinfo->r);
|
||||
BN_free(pinfo->d);
|
||||
BN_free(pinfo->t);
|
||||
BN_clear_free(pinfo->r);
|
||||
BN_clear_free(pinfo->d);
|
||||
BN_clear_free(pinfo->t);
|
||||
pinfo->r = primes[i];
|
||||
pinfo->d = exps[i];
|
||||
pinfo->t = coeffs[i];
|
||||
BN_set_flags(pinfo->r, BN_FLG_CONSTTIME);
|
||||
BN_set_flags(pinfo->d, BN_FLG_CONSTTIME);
|
||||
BN_set_flags(pinfo->t, BN_FLG_CONSTTIME);
|
||||
} else {
|
||||
rsa_multip_info_free(pinfo);
|
||||
goto err;
|
||||
|
||||
Reference in New Issue
Block a user