diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/lib5.c | 13 | ||||
| -rw-r--r-- | lib/lib5.h | 1 |
2 files changed, 11 insertions, 3 deletions
@@ -479,7 +479,14 @@ int modular_multiplicative_inverse_bignum_my(BIGNUM *res, BIGNUM *number, BIGNUM return BN_nnmod(res, tmp.s, modulo, ctx); } -int rsa_generate_key_bignum(struct rsa_key_bignum *public, struct rsa_key_bignum *private) +int rsa_generate_key_bignum(struct rsa_key_bignum *public, + struct rsa_key_bignum *private) +{ + return __rsa_generate_key_bignum(public, private ,512); +} + +int __rsa_generate_key_bignum(struct rsa_key_bignum *public, + struct rsa_key_bignum *private, int bits) { // RSA with bignum // using openssl'S BN @@ -487,9 +494,9 @@ int rsa_generate_key_bignum(struct rsa_key_bignum *public, struct rsa_key_bignum // well should check here for error but asusme infinte memory here BIGNUM *q = BN_new(); - BN_generate_prime_ex(p, 256, 1, NULL, NULL, NULL); + BN_generate_prime_ex(p, bits, 1, NULL, NULL, NULL); do { - BN_generate_prime_ex(q, 256, 1, NULL, NULL, NULL); + BN_generate_prime_ex(q, bits, 1, NULL, NULL, NULL); } while (!BN_cmp(p, q)); BIGNUM *n = BN_new(); @@ -97,6 +97,7 @@ int modulo(int a, int b); void extended_euclid_algo(int a, int b, struct extended_euclid *e); void extended_euclid_algo_bignum(BIGNUM *a, BIGNUM *b, struct extended_euclid_bignum *e); int rsa_generate_key_bignum(struct rsa_key_bignum *public, struct rsa_key_bignum *private); +int __rsa_generate_key_bignum(struct rsa_key_bignum *public, struct rsa_key_bignum *private, int bits); int free_rsa_key_bignum(struct rsa_key_bignum *t); int modular_multiplicative_inverse_bignum_my(BIGNUM *res, BIGNUM *number, BIGNUM *modulo); int modular_multiplicative_inverse(int number, int _modulo); |
