diff options
Diffstat (limited to 'Source/charon/transforms/rsa')
-rw-r--r-- | Source/charon/transforms/rsa/rsa_private_key.c | 9 | ||||
-rw-r--r-- | Source/charon/transforms/rsa/rsa_public_key.c | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/Source/charon/transforms/rsa/rsa_private_key.c b/Source/charon/transforms/rsa/rsa_private_key.c index 60673d746..c5614324b 100644 --- a/Source/charon/transforms/rsa/rsa_private_key.c +++ b/Source/charon/transforms/rsa/rsa_private_key.c @@ -279,6 +279,15 @@ static status_t set_key(private_rsa_private_key_t *this, chunk_t key) exp2.ptr = key.ptr + this->k * 6; coeff.ptr = key.ptr + this->k * 7; + mpz_init(this->n); + mpz_init(this->e); + mpz_init(this->p); + mpz_init(this->q); + mpz_init(this->d); + mpz_init(this->exp1); + mpz_init(this->exp2); + mpz_init(this->coeff); + mpz_import(this->n, this->k, 1, 1, 1, 0, n.ptr); mpz_import(this->e, this->k, 1, 1, 1, 0, e.ptr); mpz_import(this->p, this->k, 1, 1, 1, 0, p.ptr); diff --git a/Source/charon/transforms/rsa/rsa_public_key.c b/Source/charon/transforms/rsa/rsa_public_key.c index 9547b23d6..6271e4a05 100644 --- a/Source/charon/transforms/rsa/rsa_public_key.c +++ b/Source/charon/transforms/rsa/rsa_public_key.c @@ -285,6 +285,9 @@ static status_t set_key(private_rsa_public_key_t *this, chunk_t key) e.len = n.len; e.ptr = key.ptr + n.len; + mpz_init(this->n); + mpz_init(this->e); + mpz_import(this->n, n.len, 1, 1, 1, 0, n.ptr); mpz_import(this->e, n.len, 1, 1, 1, 0, e.ptr); |