summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBenedict <benedict@0xb8000.de>2016-12-19 20:07:21 +0100
committerBenedict <benedict@0xb8000.de>2017-02-21 13:00:26 +0100
commit773f26c5006f389dab09a53955be0eb5bb3cefe5 (patch)
treeba6772896b1c82728c4d9746c5d5be35972604ec /lib
parent530fcd5aaf841210a9d2d189f551c309970916e9 (diff)
lib5: added bits parameter to rsa_generate_key()
Diffstat (limited to 'lib')
-rw-r--r--lib/lib5.c13
-rw-r--r--lib/lib5.h1
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/lib5.c b/lib/lib5.c
index f87014c..1eb25e3 100644
--- a/lib/lib5.c
+++ b/lib/lib5.c
@@ -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();
diff --git a/lib/lib5.h b/lib/lib5.h
index 0c2571f..43d8165 100644
--- a/lib/lib5.h
+++ b/lib/lib5.h
@@ -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);