- Moved from unsigned long to uint32_t throughout code

diff --git a/include/polarssl/bignum.h b/include/polarssl/bignum.h
index a2039c7..092e185 100644
--- a/include/polarssl/bignum.h
+++ b/include/polarssl/bignum.h
@@ -32,6 +32,16 @@
 
 #include "config.h"
 
+#ifdef _MSC_VER
+#include <basetsd.h>
+typedef  INT16  int16_t;
+typedef UINT16 uint16_t;
+typedef UINT32 uint32_t;
+typedef UINT64 uint64_t;
+#else
+#include <inttypes.h>
+#endif
+
 #define POLARSSL_ERR_MPI_FILE_IO_ERROR                     -0x0002  /**< An error occurred while reading from or writing to a file. */
 #define POLARSSL_ERR_MPI_BAD_INPUT_DATA                    -0x0004  /**< Bad input parameters to function. */
 #define POLARSSL_ERR_MPI_INVALID_CHARACTER                 -0x0006  /**< There is an invalid character in the digit string. */
@@ -97,34 +107,29 @@
 #if defined(POLARSSL_HAVE_INT8)
 typedef   signed char  t_sint;
 typedef unsigned char  t_uint;
-typedef unsigned short t_udbl;
+typedef uint16_t       t_udbl;
 #else
 #if defined(POLARSSL_HAVE_INT16)
-typedef   signed short t_sint;
-typedef unsigned short t_uint;
-typedef unsigned long  t_udbl;
+typedef  int16_t t_sint;
+typedef uint16_t t_uint;
+typedef uint32_t t_udbl;
 #else
-  typedef   signed long t_sint;
-  typedef unsigned long t_uint;
-  #if defined(_MSC_VER) && defined(_M_IX86)
-  typedef unsigned __int64 t_udbl;
-  #else
-    #if defined(__GNUC__) && (                          \
+  typedef  int32_t t_sint;
+  typedef uint32_t t_uint;
+  #if ( defined(_MSC_VER) && defined(_M_IX86) )      || \
+      ( defined(__GNUC__) && (                          \
         defined(__amd64__) || defined(__x86_64__)    || \
         defined(__ppc64__) || defined(__powerpc64__) || \
         defined(__ia64__)  || defined(__alpha__)     || \
         (defined(__sparc__) && defined(__arch64__))  || \
-        defined(__s390x__) )
-    typedef unsigned int t_udbl __attribute__((mode(TI)));
-    #define POLARSSL_HAVE_LONGLONG
-    #else
-      #if defined(POLARSSL_HAVE_LONGLONG)
-      typedef unsigned long long t_udbl;
-      #endif
-    #endif
+        defined(__s390x__) ) )
+      #define POLARSSL_HAVE_INT64
   #endif
-#endif
-#endif
+  #if defined(POLARSSL_HAVE_INT64)
+    typedef uint64_t t_udbl;
+  #endif
+#endif /* POLARSSL_HAVE_INT16 */
+#endif /* POLARSSL_HAVE_INT8  */
 
 /**
  * \brief          MPI structure