summaryrefslogtreecommitdiffstats
path: root/mpi
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>1998-06-13 19:00:02 +0200
committerWerner Koch <wk@gnupg.org>1998-06-13 19:00:02 +0200
commite662bf708b4f24ec36b4ec8d26e66e4381bddeda (patch)
tree63f6024556241d73918e22ce678ba91a07d24537 /mpi
parenta whole bunch of internal cleanups (diff)
downloadgnupg2-e662bf708b4f24ec36b4ec8d26e66e4381bddeda.tar.xz
gnupg2-e662bf708b4f24ec36b4ec8d26e66e4381bddeda.zip
gnupg extension are now working
Diffstat (limited to 'mpi')
-rw-r--r--mpi/Makefile.am3
-rw-r--r--mpi/g10m.c90
2 files changed, 92 insertions, 1 deletions
diff --git a/mpi/Makefile.am b/mpi/Makefile.am
index ead60a683..11a18bf54 100644
--- a/mpi/Makefile.am
+++ b/mpi/Makefile.am
@@ -34,7 +34,8 @@ libmpi_a_SOURCES = longlong.h \
mpih-sub.c \
mpih-div.c \
mpih-mul.c \
- mpiutil.c
+ mpiutil.c \
+ g10m.c
# Note this objects are actually links, the sourcefiles are
# distributed by special code in dist-hook
diff --git a/mpi/g10m.c b/mpi/g10m.c
new file mode 100644
index 000000000..79d571462
--- /dev/null
+++ b/mpi/g10m.c
@@ -0,0 +1,90 @@
+/* g10m.c - Wrapper for MPI
+ * Copyright (C) 1998 Free Software Foundation, Inc.
+ *
+ * This file is part of GNUPG.
+ *
+ * GNUPG is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * GNUPG is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "mpi.h"
+#define _g10lib_INTERNAL 1
+#include "g10lib.h"
+
+MPI
+g10m_new( unsigned nbits )
+{
+ return mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1) / BITS_PER_MPI_LIMB );
+}
+
+MPI
+g10m_new_secure( unsigned nbits )
+{
+ return mpi_alloc_secure( (nbits+BITS_PER_MPI_LIMB-1) / BITS_PER_MPI_LIMB );
+}
+
+void
+g10m_release( MPI a )
+{
+ mpi_free(a);
+}
+
+void
+g10m_resize( MPI a, unsigned nbits )
+{
+ return mpi_resize( a, (nbits+BITS_PER_MPI_LIMB-1) / BITS_PER_MPI_LIMB );
+}
+
+MPI g10m_copy( MPI a ) { return mpi_copy( a ); }
+void g10m_swap( MPI a, MPI b) { mpi_swap( a, b ); }
+void g10m_set( MPI w, MPI u) { mpi_set( w, u ); }
+void g10m_set_ui( MPI w, ulong u ) { mpi_set_ui( w, u ); }
+
+void
+g10m_set_bytes( MPI a, unsigned nbits, byte (*fnc)(int), int opaque )
+{
+ mpi_set_bytes( a, nbits, fnc, opaque );
+}
+
+int g10m_cmp( MPI u, MPI v ) { return mpi_cmp( u, v ); }
+int g10m_cmp_ui( MPI u, ulong v ) { return mpi_cmp_ui( u, v ); }
+
+void g10m_add(MPI w, MPI u, MPI v) { mpi_add( w, u, v ); }
+void g10m_add_ui(MPI w, MPI u, ulong v ) { mpi_add_ui( w, u, v ); }
+void g10m_sub( MPI w, MPI u, MPI v) { mpi_sub( w, u, v ); }
+void g10m_sub_ui(MPI w, MPI u, ulong v ) { mpi_sub_ui( w, u, v ); }
+
+void g10m_mul( MPI w, MPI u, MPI v) { mpi_mul( w, u, v ); }
+void g10m_mulm( MPI w, MPI u, MPI v, MPI m) { mpi_mulm( w, u, v, m ); }
+void g10m_mul_2exp( MPI w, MPI u, ulong cnt) { mpi_mul_2exp( w, u, cnt ); }
+void g10m_mul_ui(MPI w, MPI u, ulong v ) { mpi_mul_ui( w, u, v ); }
+
+void g10m_fdiv_q( MPI q, MPI d, MPI r ) { mpi_fdiv_q( q, d, r ); }
+
+void g10m_powm( MPI r, MPI b, MPI e, MPI m) { mpi_powm( r, b, e, m ); }
+
+int g10m_gcd( MPI g, MPI a, MPI b ) { return mpi_gcd( g, a, b ); }
+int g10m_invm( MPI x, MPI u, MPI v ) { mpi_invm( x, u, v ); return 0; }
+
+unsigned g10m_get_nbits( MPI a ) { return mpi_get_nbits( a ); }
+
+unsigned
+g10m_get_size( MPI a )
+{
+ return mpi_get_nlimbs( a ) * BITS_PER_MPI_LIMB;
+}
+