• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/timemachine/openssl-0.9.8e/crypto/rsa/

Lines Matching defs:rsa

1 /* crypto/rsa/rsa_gen.c */
69 #include <openssl/rsa.h>
71 static int rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb);
78 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)
80 if(rsa->meth->rsa_keygen)
81 return rsa->meth->rsa_keygen(rsa, bits, e_value, cb);
82 return rsa_builtin_keygen(rsa, bits, e_value, cb);
85 static int rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)
104 if(!rsa->n && ((rsa->n=BN_new()) == NULL)) goto err;
105 if(!rsa->d && ((rsa->d=BN_new()) == NULL)) goto err;
106 if(!rsa->e && ((rsa->e=BN_new()) == NULL)) goto err;
107 if(!rsa->p && ((rsa->p=BN_new()) == NULL)) goto err;
108 if(!rsa->q && ((rsa->q=BN_new()) == NULL)) goto err;
109 if(!rsa->dmp1 && ((rsa->dmp1=BN_new()) == NULL)) goto err;
110 if(!rsa->dmq1 && ((rsa->dmq1=BN_new()) == NULL)) goto err;
111 if(!rsa->iqmp && ((rsa->iqmp=BN_new()) == NULL)) goto err;
113 BN_copy(rsa->e, e_value);
118 if(!BN_generate_prime_ex(rsa->p, bitsp, 0, NULL, NULL, cb))
120 if (!BN_sub(r2,rsa->p,BN_value_one())) goto err;
121 if (!BN_gcd(r1,r2,rsa->e,ctx)) goto err;
136 if(!BN_generate_prime_ex(rsa->q, bitsq, 0, NULL, NULL, cb))
138 } while((BN_cmp(rsa->p, rsa->q) == 0) && (++degenerate < 3));
145 if (!BN_sub(r2,rsa->q,BN_value_one())) goto err;
146 if (!BN_gcd(r1,r2,rsa->e,ctx)) goto err;
154 if (BN_cmp(rsa->p,rsa->q) < 0)
156 tmp=rsa->p;
157 rsa->p=rsa->q;
158 rsa->q=tmp;
162 if (!BN_mul(rsa->n,rsa->p,rsa->q,ctx)) goto err;
165 if (!BN_sub(r1,rsa->p,BN_value_one())) goto err; /* p-1 */
166 if (!BN_sub(r2,rsa->q,BN_value_one())) goto err; /* q-1 */
168 if (!BN_mod_inverse(rsa->d,rsa->e,r0,ctx)) goto err; /* d */
171 if (!BN_mod(rsa->dmp1,rsa->d,r1,ctx)) goto err;
174 if (!BN_mod(rsa->dmq1,rsa->d,r2,ctx)) goto err;
177 if (!BN_mod_inverse(rsa->iqmp,rsa->q,rsa->p,ctx)) goto err;