rejoined diffie hellman code from ltc 1.05, thanks to Alexander Kurpiers
This commit is contained in:
@@ -305,6 +305,28 @@ static int lcm(void *a, void *b, void *c)
|
||||
return CRYPT_OK;
|
||||
}
|
||||
|
||||
static int addmod(void *a, void *b, void *c, void *d)
|
||||
{
|
||||
LTC_ARGCHK(a != NULL);
|
||||
LTC_ARGCHK(b != NULL);
|
||||
LTC_ARGCHK(c != NULL);
|
||||
LTC_ARGCHK(d != NULL);
|
||||
mpz_add(d, a, b);
|
||||
mpz_mod(d, d, c);
|
||||
return CRYPT_OK;
|
||||
}
|
||||
|
||||
static int submod(void *a, void *b, void *c, void *d)
|
||||
{
|
||||
LTC_ARGCHK(a != NULL);
|
||||
LTC_ARGCHK(b != NULL);
|
||||
LTC_ARGCHK(c != NULL);
|
||||
LTC_ARGCHK(d != NULL);
|
||||
mpz_sub(d, a, b);
|
||||
mpz_mod(d, d, c);
|
||||
return CRYPT_OK;
|
||||
}
|
||||
|
||||
static int mulmod(void *a, void *b, void *c, void *d)
|
||||
{
|
||||
LTC_ARGCHK(a != NULL);
|
||||
@@ -427,6 +449,8 @@ const ltc_math_descriptor gmp_desc = {
|
||||
&gcd,
|
||||
&lcm,
|
||||
|
||||
&addmod,
|
||||
&submod,
|
||||
&mulmod,
|
||||
&sqrmod,
|
||||
&invmod,
|
||||
|
||||
@@ -308,6 +308,24 @@ static int lcm(void *a, void *b, void *c)
|
||||
return mpi_to_ltc_error(mp_lcm(a, b, c));
|
||||
}
|
||||
|
||||
static int addmod(void *a, void *b, void *c, void *d)
|
||||
{
|
||||
LTC_ARGCHK(a != NULL);
|
||||
LTC_ARGCHK(b != NULL);
|
||||
LTC_ARGCHK(c != NULL);
|
||||
LTC_ARGCHK(d != NULL);
|
||||
return mpi_to_ltc_error(mp_addmod(a,b,c,d));
|
||||
}
|
||||
|
||||
static int submod(void *a, void *b, void *c, void *d)
|
||||
{
|
||||
LTC_ARGCHK(a != NULL);
|
||||
LTC_ARGCHK(b != NULL);
|
||||
LTC_ARGCHK(c != NULL);
|
||||
LTC_ARGCHK(d != NULL);
|
||||
return mpi_to_ltc_error(mp_submod(a,b,c,d));
|
||||
}
|
||||
|
||||
static int mulmod(void *a, void *b, void *c, void *d)
|
||||
{
|
||||
LTC_ARGCHK(a != NULL);
|
||||
@@ -433,6 +451,8 @@ const ltc_math_descriptor ltm_desc = {
|
||||
&gcd,
|
||||
&lcm,
|
||||
|
||||
&addmod,
|
||||
&submod,
|
||||
&mulmod,
|
||||
&sqrmod,
|
||||
&invmod,
|
||||
|
||||
@@ -319,6 +319,24 @@ static int lcm(void *a, void *b, void *c)
|
||||
return CRYPT_OK;
|
||||
}
|
||||
|
||||
static int addmod(void *a, void *b, void *c, void *d)
|
||||
{
|
||||
LTC_ARGCHK(a != NULL);
|
||||
LTC_ARGCHK(b != NULL);
|
||||
LTC_ARGCHK(c != NULL);
|
||||
LTC_ARGCHK(d != NULL);
|
||||
return tfm_to_ltc_error(fp_addmod(a,b,c,d));
|
||||
}
|
||||
|
||||
static int submod(void *a, void *b, void *c, void *d)
|
||||
{
|
||||
LTC_ARGCHK(a != NULL);
|
||||
LTC_ARGCHK(b != NULL);
|
||||
LTC_ARGCHK(c != NULL);
|
||||
LTC_ARGCHK(d != NULL);
|
||||
return tfm_to_ltc_error(fp_submod(a,b,c,d));
|
||||
}
|
||||
|
||||
static int mulmod(void *a, void *b, void *c, void *d)
|
||||
{
|
||||
LTC_ARGCHK(a != NULL);
|
||||
@@ -721,6 +739,8 @@ const ltc_math_descriptor tfm_desc = {
|
||||
&gcd,
|
||||
&lcm,
|
||||
|
||||
&addmod,
|
||||
&submod,
|
||||
&mulmod,
|
||||
&sqrmod,
|
||||
&invmod,
|
||||
|
||||
Reference in New Issue
Block a user