aboutsummaryrefslogtreecommitdiff
path: root/curve25519_32.c
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2019-02-01 18:50:00 -0500
committerGravatar Jason Gross <jasongross9@gmail.com>2019-02-02 18:22:15 -0500
commitce583d76bdb8f15148fc4222d8bdec096547682a (patch)
treeffb083673e6be283d7f67ad857bc2f30af892767 /curve25519_32.c
parent069e5cce23669707f11e59d9f68a31ad24990fe0 (diff)
Use Preconditions: Postconditions:, rather than /\ and ->
Diffstat (limited to 'curve25519_32.c')
-rw-r--r--curve25519_32.c68
1 files changed, 49 insertions, 19 deletions
diff --git a/curve25519_32.c b/curve25519_32.c
index 76f266afd..4d4565689 100644
--- a/curve25519_32.c
+++ b/curve25519_32.c
@@ -16,8 +16,10 @@ typedef signed char fiat_25519_int1;
/*
* The function fiat_25519_addcarryx_u26 is an addition with carry.
- * out1 = (arg1 + arg2 + arg3) mod 2^26
- * ∧ out2 = ⌊(arg1 + arg2 + arg3) / 2^26⌋
+ * Postconditions:
+ * out1 = (arg1 + arg2 + arg3) mod 2^26
+ * out2 = ⌊(arg1 + arg2 + arg3) / 2^26⌋
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0x3ffffff]
@@ -36,8 +38,10 @@ static void fiat_25519_addcarryx_u26(uint32_t* out1, fiat_25519_uint1* out2, fia
/*
* The function fiat_25519_subborrowx_u26 is a subtraction with borrow.
- * out1 = (-arg1 + arg2 + -arg3) mod 2^26
- * ∧ out2 = -⌊(-arg1 + arg2 + -arg3) / 2^26⌋
+ * Postconditions:
+ * out1 = (-arg1 + arg2 + -arg3) mod 2^26
+ * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^26⌋
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0x3ffffff]
@@ -56,8 +60,10 @@ static void fiat_25519_subborrowx_u26(uint32_t* out1, fiat_25519_uint1* out2, fi
/*
* The function fiat_25519_addcarryx_u25 is an addition with carry.
- * out1 = (arg1 + arg2 + arg3) mod 2^25
- * ∧ out2 = ⌊(arg1 + arg2 + arg3) / 2^25⌋
+ * Postconditions:
+ * out1 = (arg1 + arg2 + arg3) mod 2^25
+ * out2 = ⌊(arg1 + arg2 + arg3) / 2^25⌋
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0x1ffffff]
@@ -76,8 +82,10 @@ static void fiat_25519_addcarryx_u25(uint32_t* out1, fiat_25519_uint1* out2, fia
/*
* The function fiat_25519_subborrowx_u25 is a subtraction with borrow.
- * out1 = (-arg1 + arg2 + -arg3) mod 2^25
- * ∧ out2 = -⌊(-arg1 + arg2 + -arg3) / 2^25⌋
+ * Postconditions:
+ * out1 = (-arg1 + arg2 + -arg3) mod 2^25
+ * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^25⌋
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0x1ffffff]
@@ -96,7 +104,9 @@ static void fiat_25519_subborrowx_u25(uint32_t* out1, fiat_25519_uint1* out2, fi
/*
* The function fiat_25519_cmovznz_u32 is a single-word conditional move.
- * out1 = (if arg1 = 0 then arg2 else arg3)
+ * Postconditions:
+ * out1 = (if arg1 = 0 then arg2 else arg3)
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [0x0 ~> 0xffffffff]
@@ -113,7 +123,9 @@ static void fiat_25519_cmovznz_u32(uint32_t* out1, fiat_25519_uint1 arg1, uint32
/*
* The function fiat_25519_carry_mul multiplies two field elements and reduces the result.
- * eval out1 mod m = (eval arg1 * eval arg2) mod m
+ * Postconditions:
+ * eval out1 mod m = (eval arg1 * eval arg2) mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999]]
* arg2: [[0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999]]
@@ -282,7 +294,9 @@ static void fiat_25519_carry_mul(uint32_t out1[10], const uint32_t arg1[10], con
/*
* The function fiat_25519_carry_square squares a field element and reduces the result.
- * eval out1 mod m = (eval arg1 * eval arg1) mod m
+ * Postconditions:
+ * eval out1 mod m = (eval arg1 * eval arg1) mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999]]
* Output Bounds:
@@ -423,7 +437,9 @@ static void fiat_25519_carry_square(uint32_t out1[10], const uint32_t arg1[10])
/*
* The function fiat_25519_carry_scmul_121666 multiplies a field element by 121666 and reduces the result.
- * eval out1 mod m = (121666 * eval arg1) mod m
+ * Postconditions:
+ * eval out1 mod m = (121666 * eval arg1) mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999]]
* Output Bounds:
@@ -491,7 +507,9 @@ static void fiat_25519_carry_scmul_121666(uint32_t out1[10], const uint32_t arg1
/*
* The function fiat_25519_carry reduces a field element.
- * eval out1 mod m = eval arg1 mod m
+ * Postconditions:
+ * eval out1 mod m = eval arg1 mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999], [0x0 ~> 0xd333332], [0x0 ~> 0x6999999]]
* Output Bounds:
@@ -534,7 +552,9 @@ static void fiat_25519_carry(uint32_t out1[10], const uint32_t arg1[10]) {
/*
* The function fiat_25519_add adds two field elements.
- * eval out1 mod m = (eval arg1 + eval arg2) mod m
+ * Postconditions:
+ * eval out1 mod m = (eval arg1 + eval arg2) mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333]]
* arg2: [[0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333]]
@@ -566,7 +586,9 @@ static void fiat_25519_add(uint32_t out1[10], const uint32_t arg1[10], const uin
/*
* The function fiat_25519_sub subtracts two field elements.
- * eval out1 mod m = (eval arg1 - eval arg2) mod m
+ * Postconditions:
+ * eval out1 mod m = (eval arg1 - eval arg2) mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333]]
* arg2: [[0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333]]
@@ -598,7 +620,9 @@ static void fiat_25519_sub(uint32_t out1[10], const uint32_t arg1[10], const uin
/*
* The function fiat_25519_opp negates a field element.
- * eval out1 mod m = -eval arg1 mod m
+ * Postconditions:
+ * eval out1 mod m = -eval arg1 mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333]]
* Output Bounds:
@@ -629,7 +653,9 @@ static void fiat_25519_opp(uint32_t out1[10], const uint32_t arg1[10]) {
/*
* The function fiat_25519_selectznz is a multi-limb conditional select.
- * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)
+ * Postconditions:
+ * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)
+ *
* Input Bounds:
* arg1: [0x0 ~> 0x1]
* arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
@@ -672,7 +698,9 @@ static void fiat_25519_selectznz(uint32_t out1[10], fiat_25519_uint1 arg1, const
/*
* The function fiat_25519_to_bytes serializes a field element to bytes in little-endian order.
- * out1 = map (λ x, ⌊(eval arg1 mod m) mod 2^(8 * (x + 1)) / 2^(8 * x)⌋) [0..31]
+ * Postconditions:
+ * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31]
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333], [0x0 ~> 0x4666666], [0x0 ~> 0x2333333]]
* Output Bounds:
@@ -854,7 +882,9 @@ static void fiat_25519_to_bytes(uint8_t out1[32], const uint32_t arg1[10]) {
/*
* The function fiat_25519_from_bytes deserializes a field element from bytes in little-endian order.
- * eval out1 mod m = bytes_eval arg1 mod m
+ * Postconditions:
+ * eval out1 mod m = bytes_eval arg1 mod m
+ *
* Input Bounds:
* arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x7f]]
* Output Bounds: