summaryrefslogtreecommitdiff
path: root/mpi
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2020-04-17 11:45:38 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2020-04-17 13:50:43 +0900
commit128045a12139fe2e4be877df59da10c7d4857d9a (patch)
treed89e72918ef9f1d04fddcabca1edf0728ccc678d /mpi
parent515bd6e9fae448e966f71e23635503716201158d (diff)
downloadlibgcrypt-128045a12139fe2e4be877df59da10c7d4857d9a.tar.gz
mpi: Add _gcry_mpih_cmp_ui.
* mpi/mpih-const-time.c (_gcry_mpih_cmp_ui): New. Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
Diffstat (limited to 'mpi')
-rw-r--r--mpi/mpi-internal.h1
-rw-r--r--mpi/mpih-const-time.c14
2 files changed, 15 insertions, 0 deletions
diff --git a/mpi/mpi-internal.h b/mpi/mpi-internal.h
index 4111d905..8ccdeada 100644
--- a/mpi/mpi-internal.h
+++ b/mpi/mpi-internal.h
@@ -274,6 +274,7 @@ void _gcry_mpih_abs_cond (mpi_ptr_t wp, mpi_ptr_t up,
mpi_size_t usize, unsigned long op_enable);
mpi_ptr_t _gcry_mpih_mod (mpi_ptr_t vp, mpi_size_t vsize,
mpi_ptr_t up, mpi_size_t usize);
+int _gcry_mpih_cmp_ui (mpi_ptr_t up, mpi_size_t usize, unsigned long v);
/* Define stuff for longlong.h. */
diff --git a/mpi/mpih-const-time.c b/mpi/mpih-const-time.c
index d91bf1a9..5ebb8d11 100644
--- a/mpi/mpih-const-time.c
+++ b/mpi/mpih-const-time.c
@@ -180,3 +180,17 @@ _gcry_mpih_mod (mpi_ptr_t vp, mpi_size_t vsize,
return rp;
}
+
+int
+_gcry_mpih_cmp_ui (mpi_ptr_t up, mpi_size_t usize, unsigned long v)
+{
+ int is_all_zero = 1;
+ mpi_size_t i;
+
+ for (i = 1; i < usize; i++)
+ is_all_zero &= (up[i] == 0);
+
+ if (is_all_zero)
+ return up[0] - v;
+ return 1;
+}