From 5e14e11c3c21c7bd04b156f1df8e8c866509bc4a Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 20 Feb 2008 13:53:17 +0000 Subject: cleanups key derivation could work now --- mpi.cpp | 54 +++++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 25 deletions(-) (limited to 'mpi.cpp') diff --git a/mpi.cpp b/mpi.cpp index 39e3408..18a3349 100644 --- a/mpi.cpp +++ b/mpi.cpp @@ -68,7 +68,7 @@ void Mpi::operator=(const Mpi &src) val_ = gcry_mpi_copy(src.val_); } -void Mpi::operator=(const long unsigned int src) +void Mpi::operator=(const u_int32_t src) { gcry_mpi_set_ui(val_, src); } @@ -80,48 +80,44 @@ Mpi Mpi::operator+(const Mpi &b) const return res; } -Mpi Mpi::operator+(const long unsigned int &b) const +Mpi Mpi::operator+(const u_int32_t &b) const { Mpi res; gcry_mpi_add_ui(res.val_, val_, b); return res; } -Mpi Mpi::operator*(const unsigned long int n) const +Mpi Mpi::operator*(const u_int32_t n) const { Mpi res; gcry_mpi_mul_ui(res.val_, val_, n); return res; } -//TODO: this is outstandingly ugly!!!!!!!! -Mpi Mpi::operator^(const Mpi &b) const +Mpi Mpi::operator/(const Mpi &b) const { - u_int32_t a_len=0, b_len=0; Mpi res; + gcry_mpi_div(res.val_, NULL, val_, b.val_, 0); + return res; +} - a_len = gcry_mpi_get_nbits(val_); - b_len = gcry_mpi_get_nbits(b.val_); +//TODO: this is outstandingly ugly!!!!!!!! +Mpi Mpi::operator^(const Mpi &b) const +{ + u_int32_t a_len = gcry_mpi_get_nbits(val_); + u_int32_t b_len = gcry_mpi_get_nbits(b.val_); - if(a_len>=b_len) - res = Mpi(*this); - else - res = Mpi(b); + Mpi res = (a_len >= b_len) ? Mpi(*this) : Mpi(b); for(u_int32_t i=0; i