summaryrefslogtreecommitdiffhomepage
path: root/libtommath/bn_mp_complement.c
diff options
context:
space:
mode:
Diffstat (limited to 'libtommath/bn_mp_complement.c')
-rw-r--r--libtommath/bn_mp_complement.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/libtommath/bn_mp_complement.c b/libtommath/bn_mp_complement.c
new file mode 100644
index 0000000..05370db
--- /dev/null
+++ b/libtommath/bn_mp_complement.c
@@ -0,0 +1,25 @@
+#include "tommath_private.h"
+#ifdef BN_MP_COMPLEMENT_C
+/* LibTomMath, multiple-precision integer library -- Tom St Denis
+ *
+ * LibTomMath is a library that provides multiple-precision
+ * integer arithmetic as well as number theoretic functionality.
+ *
+ * The library was designed directly after the MPI library by
+ * Michael Fromberger but has been written from scratch with
+ * additional optimizations in place.
+ *
+ * SPDX-License-Identifier: Unlicense
+ */
+
+/* b = ~a */
+int mp_complement(const mp_int *a, mp_int *b)
+{
+ int res = mp_neg(a, b);
+ return (res == MP_OKAY) ? mp_sub_d(b, 1uL, b) : res;
+}
+#endif
+
+/* ref: HEAD -> master, tag: v1.1.0 */
+/* git commit: 08549ad6bc8b0cede0b357a9c341c5c6473a9c55 */
+/* commit time: 2019-01-28 20:32:32 +0100 */