X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcmath%2Fmodinv.c;h=7863923e4bf7dc76c88163d91812bd638255a3fd;hb=ae81323a6c29c176f6dd235aea5f6ce4b42263ea;hp=c41dab0022835db0122f9844ac5445f9783eaf30;hpb=98c6bbf7fb68ed46c830793dddcf6359f78845f8;p=silc.git diff --git a/lib/silcmath/modinv.c b/lib/silcmath/modinv.c index c41dab00..7863923e 100644 --- a/lib/silcmath/modinv.c +++ b/lib/silcmath/modinv.c @@ -23,7 +23,7 @@ /* Table for finding multiplicative inverse */ typedef struct { - SilcInt x; + SilcMPInt x; } ModInv; #define plus1 (i == 2 ? 0 : i + 1) @@ -47,11 +47,11 @@ typedef struct { not needed by the algorithm so it does not have to be included.) */ -void silc_mp_modinv(SilcInt *inv, SilcInt *a, SilcInt *n) +void silc_mp_modinv(SilcMPInt *inv, SilcMPInt *a, SilcMPInt *n) { int i; - SilcInt y; - SilcInt x; + SilcMPInt y; + SilcMPInt x; ModInv g[3]; ModInv v[3]; @@ -59,11 +59,15 @@ void silc_mp_modinv(SilcInt *inv, SilcInt *a, SilcInt *n) /* init MP vars */ silc_mp_init(&y); silc_mp_init(&x); - silc_mp_init_set_ui(&v[0].x, 0L); /* v(0) = 0 */ - silc_mp_init_set_ui(&v[1].x, 1L); /* v(1) = 1 */ + silc_mp_init(&v[0].x); + silc_mp_init(&v[1].x); + silc_mp_set_ui(&v[0].x, 0L); /* v(0) = 0 */ + silc_mp_set_ui(&v[1].x, 1L); /* v(1) = 1 */ silc_mp_init(&v[2].x); - silc_mp_init_set(&g[0].x, n); /* g(0) = n */ - silc_mp_init_set(&g[1].x, a); /* g(1) = a */ + silc_mp_init(&g[0].x); + silc_mp_init(&g[1].x); + silc_mp_set(&g[0].x, n); /* g(0) = n */ + silc_mp_set(&g[1].x, a); /* g(1) = a */ silc_mp_init(&g[2].x); i = 1; @@ -86,12 +90,12 @@ void silc_mp_modinv(SilcInt *inv, SilcInt *a, SilcInt *n) /* clear the vars */ memset(&g, 0, sizeof(g)); memset(&v, 0, sizeof(v)); - silc_mp_clear(&y); - silc_mp_clear(&x); - silc_mp_clear(&g[0].x); - silc_mp_clear(&g[1].x); - silc_mp_clear(&g[2].x); - silc_mp_clear(&v[0].x); - silc_mp_clear(&v[1].x); - silc_mp_clear(&v[2].x); + silc_mp_uninit(&y); + silc_mp_uninit(&x); + silc_mp_uninit(&g[0].x); + silc_mp_uninit(&g[1].x); + silc_mp_uninit(&g[2].x); + silc_mp_uninit(&v[0].x); + silc_mp_uninit(&v[1].x); + silc_mp_uninit(&v[2].x); }