summaryrefslogtreecommitdiff
path: root/sys/include/mp.h
diff options
context:
space:
mode:
authoraiju <devnull@localhost>2015-12-08 18:29:22 +0100
committeraiju <devnull@localhost>2015-12-08 18:29:22 +0100
commit87abbc649f9064660128b840ef3aabad3e55abce (patch)
tree60a1bdd496f6268b3c0da90f8bd6da2d9f583a5b /sys/include/mp.h
parent5f155322607bb8771881961a2fed71bb3dea8cf1 (diff)
mp: add logic operations; mpfmt: include 0x with #
Diffstat (limited to 'sys/include/mp.h')
-rw-r--r--sys/include/mp.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/include/mp.h b/sys/include/mp.h
index b17df619c..31e4ef3d8 100644
--- a/sys/include/mp.h
+++ b/sys/include/mp.h
@@ -76,6 +76,15 @@ void mpmul(mpint *b1, mpint *b2, mpint *prod); /* prod = b1*b2 */
void mpexp(mpint *b, mpint *e, mpint *m, mpint *res); /* res = b**e mod m */
void mpmod(mpint *b, mpint *m, mpint *remainder); /* remainder = b mod m */
+/* logical operations */
+void mpand(mpint *b1, mpint *b2, mpint *res);
+void mpbic(mpint *b1, mpint *b2, mpint *res);
+void mpor(mpint *b1, mpint *b2, mpint *res);
+void mpnot(mpint *b, mpint *res);
+void mpxor(mpint *b1, mpint *b2, mpint *res);
+void mptrunc(mpint *b, int n, mpint *res);
+void mpxtend(mpint *b, int n, mpint *res);
+
/* modular arithmetic, time invariant when 0≤b1≤m-1 and 0≤b2≤m-1 */
void mpmodadd(mpint *b1, mpint *b2, mpint *m, mpint *sum); /* sum = b1+b2 % m */
void mpmodsub(mpint *b1, mpint *b2, mpint *m, mpint *diff); /* diff = b1-b2 % m */