partial DSA support
[gnupg.git] / include / mpi.h
index 4e25ab2..87bb053 100644 (file)
 #define DBG_MPI     mpi_debug_mode
 int mpi_debug_mode;
 
-#if defined(__i386__)
-  #define BITS_PER_MPI_LIMB  32
-  #define BYTES_PER_MPI_LIMB  4
-  #define BYTES_PER_MPI_LIMB2 8
-  typedef unsigned long int mpi_limb_t;
-  typedef   signed long int mpi_limb_signed_t;
-#elif defined(__hppa__)
-  #define BITS_PER_MPI_LIMB   32
-  #define BYTES_PER_MPI_LIMB   4
-  #define BYTES_PER_MPI_LIMB2  8
-  typedef unsigned long int mpi_limb_t;
-  typedef   signed long int mpi_limb_signed_t;
-#elif defined(__alpha__)
-  #define BITS_PER_MPI_LIMB   64
-  #define BYTES_PER_MPI_LIMB   8
-  #define BYTES_PER_MPI_LIMB2 16
-  typedef unsigned long int mpi_limb_t;
-  typedef   signed long int mpi_limb_signed_t;
-#else
-  #error add definions for this machine here
-#endif
+#define BITS_PER_MPI_LIMB    (8*SIZEOF_UNSIGNED_LONG)
+#define BYTES_PER_MPI_LIMB   SIZEOF_UNSIGNED_LONG
+typedef unsigned long int mpi_limb_t;
+typedef   signed long int mpi_limb_signed_t;
 
 typedef struct mpi_struct {
     int alloced;    /* array size (# of allocated limbs) */
@@ -95,6 +78,8 @@ typedef struct mpi_struct {
   void mpi_resize( MPI a, unsigned nlimbs );
   MPI  mpi_copy( MPI a );
 #endif
+#define mpi_is_secure(a) ((a) && (a)->secure)
+void mpi_set_secure( MPI a );
 void mpi_clear( MPI a );
 void mpi_set( MPI w, MPI u);
 void mpi_set_ui( MPI w, ulong u);
@@ -147,6 +132,9 @@ int mpi_gcd( MPI g, MPI a, MPI b );
 void mpi_pow( MPI w, MPI u, MPI v);
 void mpi_powm( MPI res, MPI base, MPI exp, MPI mod);
 
+/*-- mpi-mpow.c --*/
+void mpi_mulpowm( MPI res, MPI *basearray, MPI *exparray, MPI mod);
+
 /*-- mpi-cmp.c --*/
 int mpi_cmp_ui( MPI u, ulong v );
 int mpi_cmp( MPI u, MPI v );