math: change get_digit() return value

unsigned long is 32bit wide when compiling with the compiler flag "-mx32"
but the digit size of the math libraries is still 64 bit which lead to
the buggy ecc code.

Therefore define a new type ltc_mp_digit with the correct width and use
that as return value of get_digit()

Has been tested with all three math providers
This commit is contained in:
Steffen Jaeckel
2014-09-10 16:15:35 +02:00
parent 1793072c67
commit f597f29ece
7 changed files with 11 additions and 6 deletions
+5
View File
@@ -122,6 +122,11 @@ typedef ulong32 __attribute__((__may_alias__)) LTC_FAST_TYPE;
#endif
#endif
#ifdef ENDIAN_64BITWORD
typedef ulong64 ltc_mp_digit;
#else
typedef ulong32 ltc_mp_digit;
#endif
#ifdef LTC_NO_FAST
#ifdef LTC_FAST
+1 -1
View File
@@ -80,7 +80,7 @@ typedef struct {
@param n The number of the digit to fetch
@return The bits_per_digit sized n'th digit of a
*/
unsigned long (*get_digit)(void *a, int n);
ltc_mp_digit (*get_digit)(void *a, int n);
/** Get the number of digits that represent the number
@param a The number to count