summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/libaxolotl/src/curve25519/ed25519/additions/elligator.c2
-rw-r--r--libs/libaxolotl/src/curve25519/ed25519/additions/uopen_modified.c20
-rw-r--r--libs/libaxolotl/src/curve25519/ed25519/additions/vopen_modified.c14
3 files changed, 19 insertions, 17 deletions
diff --git a/libs/libaxolotl/src/curve25519/ed25519/additions/elligator.c b/libs/libaxolotl/src/curve25519/ed25519/additions/elligator.c
index 8a8131ff2f..5294c86669 100644
--- a/libs/libaxolotl/src/curve25519/ed25519/additions/elligator.c
+++ b/libs/libaxolotl/src/curve25519/ed25519/additions/elligator.c
@@ -7,6 +7,7 @@
unsigned int legendre_is_nonsquare(fe in)
{
+ unsigned char bytes[32];
fe temp;
fe_pow22523(temp, in); /* temp = in^((q-5)/8) */
fe_sq(temp, temp); /* in^((q-5)/4) */
@@ -19,7 +20,6 @@ unsigned int legendre_is_nonsquare(fe in)
* 0 = input is zero
* -1 = nonsquare
*/
- unsigned char bytes[32];
fe_tobytes(bytes, temp);
return 1 & bytes[31];
}
diff --git a/libs/libaxolotl/src/curve25519/ed25519/additions/uopen_modified.c b/libs/libaxolotl/src/curve25519/ed25519/additions/uopen_modified.c
index 412f8c4c9b..537858db6a 100644
--- a/libs/libaxolotl/src/curve25519/ed25519/additions/uopen_modified.c
+++ b/libs/libaxolotl/src/curve25519/ed25519/additions/uopen_modified.c
@@ -20,6 +20,9 @@ int crypto_usign_open_modified(
ge_p2 R;
unsigned char hcheck[64];
int count;
+ // Ru = sBu + h(-U)
+ ge_p3 sBu, hU;
+ ge_p3 Ru;
if (smlen < 96) goto badsig;
if (sm[63] & 224) goto badsig; /* strict parsing of h */
@@ -52,9 +55,6 @@ int crypto_usign_open_modified(
// R = sB + h(-A)
ge_double_scalarmult_vartime(&R,h,&A,s);
- // Ru = sBu + h(-U)
- ge_p3 sBu, hU;
-
// sBu
ge_scalarmult(&sBu, s, Bu);
@@ -62,13 +62,13 @@ int crypto_usign_open_modified(
ge_scalarmult(&hU, h, &U);
// Ru = sBu + h(-U)
- ge_p1p1 Rp1p1;
- ge_p3 Ru;
- ge_cached hUcached;
- ge_p3_to_cached(&hUcached, &hU);
- ge_add(&Rp1p1, &sBu, &hUcached);
- ge_p1p1_to_p3(&Ru, &Rp1p1);
-
+ {
+ ge_p1p1 Rp1p1;
+ ge_cached hUcached;
+ ge_p3_to_cached(&hUcached, &hU);
+ ge_add(&Rp1p1, &sBu, &hUcached);
+ ge_p1p1_to_p3(&Ru, &Rp1p1);
+ }
// Check h == SHA512(label(4) || A || U || R || Ru || M)
m[0] = 0xFB;
diff --git a/libs/libaxolotl/src/curve25519/ed25519/additions/vopen_modified.c b/libs/libaxolotl/src/curve25519/ed25519/additions/vopen_modified.c
index 3dfc7fba6f..035ec0e0a3 100644
--- a/libs/libaxolotl/src/curve25519/ed25519/additions/vopen_modified.c
+++ b/libs/libaxolotl/src/curve25519/ed25519/additions/vopen_modified.c
@@ -16,6 +16,7 @@ int crypto_vsign_open_modified(
unsigned char h[32];
unsigned char s[32];
ge_p2 R;
+ ge_p3 Rv;
unsigned char hcheck[64];
unsigned char vrf_output[64];
int count;
@@ -51,12 +52,13 @@ int crypto_vsign_open_modified(
ge_scalarmult(&h_Vneg, h, &Vneg);
// Rv = (sc * Bv) + (hc * (-V))
- ge_p1p1 Rp1p1;
- ge_p3 Rv;
- ge_cached h_Vnegcached;
- ge_p3_to_cached(&h_Vnegcached, &h_Vneg);
- ge_add(&Rp1p1, &s_Bv, &h_Vnegcached);
- ge_p1p1_to_p3(&Rv, &Rp1p1);
+ {
+ ge_p1p1 Rp1p1;
+ ge_cached h_Vnegcached;
+ ge_p3_to_cached(&h_Vnegcached, &h_Vneg);
+ ge_add(&Rp1p1, &s_Bv, &h_Vnegcached);
+ ge_p1p1_to_p3(&Rv, &Rp1p1);
+ }
// Check h == SHA512(label(4) || A || V || R || Rv || M)
m[0] = 0xFB; // label 4