summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranziskus Kiefer <franziskuskiefer@gmail.com>2018-03-06 08:57:41 +0100
committerFranziskus Kiefer <franziskuskiefer@gmail.com>2018-03-06 08:57:41 +0100
commitb8864ce240649866ec5c5234b7fc80531051aa54 (patch)
tree61a9961551c7212bacbba3f2cdb547522c1e7cbf
parent80059f0df685235533262a74ac9c4216e02a301d (diff)
downloadnss-hg-b8864ce240649866ec5c5234b7fc80531051aa54.tar.gz
Bug 1424663 - update HACL* version, r=ttaubert
Unbreak VS2015 32-bit, see bug 1442554. Differential Revision: https://phabricator.services.mozilla.com/D678
-rw-r--r--automation/taskcluster/docker-hacl/Dockerfile2
-rw-r--r--lib/freebl/verified/Hacl_Chacha20_Vec128.c30
2 files changed, 13 insertions, 19 deletions
diff --git a/automation/taskcluster/docker-hacl/Dockerfile b/automation/taskcluster/docker-hacl/Dockerfile
index 470efd1c0..ff7a16745 100644
--- a/automation/taskcluster/docker-hacl/Dockerfile
+++ b/automation/taskcluster/docker-hacl/Dockerfile
@@ -9,7 +9,7 @@ ENV haclrepo https://github.com/mitls/hacl-star.git
# Define versions of dependencies
ENV opamv 4.04.2
-ENV haclversion 5cc724bb814ff9dce7d9e9a6cdf7bcd6800c5da8
+ENV haclversion 426abe1c4e55f3e569bd9815d52bffc4daac44e5
# Install required packages and set versions
ADD setup.sh /tmp/setup.sh
diff --git a/lib/freebl/verified/Hacl_Chacha20_Vec128.c b/lib/freebl/verified/Hacl_Chacha20_Vec128.c
index 74b74a1ba..4eba49f47 100644
--- a/lib/freebl/verified/Hacl_Chacha20_Vec128.c
+++ b/lib/freebl/verified/Hacl_Chacha20_Vec128.c
@@ -225,19 +225,6 @@ Hacl_Impl_Chacha20_Vec128_update_last(uint8_t *output, uint8_t *plain, uint32_t
}
static void
-Hacl_Impl_Chacha20_Vec128_store_4_vec(uint8_t *output, vec v0, vec v1, vec v2, vec v3)
-{
- uint8_t *o0 = output;
- uint8_t *o1 = output + (uint32_t)16U;
- uint8_t *o2 = output + (uint32_t)32U;
- uint8_t *o3 = output + (uint32_t)48U;
- vec_store_le(o0, v0);
- vec_store_le(o1, v1);
- vec_store_le(o2, v2);
- vec_store_le(o3, v3);
-}
-
-static void
Hacl_Impl_Chacha20_Vec128_xor_block(uint8_t *output, uint8_t *plain, vec *st)
{
vec p0 = vec_load_le(plain);
@@ -248,11 +235,18 @@ Hacl_Impl_Chacha20_Vec128_xor_block(uint8_t *output, uint8_t *plain, vec *st)
vec k1 = st[1U];
vec k2 = st[2U];
vec k3 = st[3U];
- vec o0 = vec_xor(p0, k0);
- vec o1 = vec_xor(p1, k1);
- vec o2 = vec_xor(p2, k2);
- vec o3 = vec_xor(p3, k3);
- Hacl_Impl_Chacha20_Vec128_store_4_vec(output, o0, o1, o2, o3);
+ vec o00 = vec_xor(p0, k0);
+ vec o10 = vec_xor(p1, k1);
+ vec o20 = vec_xor(p2, k2);
+ vec o30 = vec_xor(p3, k3);
+ uint8_t *o0 = output;
+ uint8_t *o1 = output + (uint32_t)16U;
+ uint8_t *o2 = output + (uint32_t)32U;
+ uint8_t *o3 = output + (uint32_t)48U;
+ vec_store_le(o0, o00);
+ vec_store_le(o1, o10);
+ vec_store_le(o2, o20);
+ vec_store_le(o3, o30);
}
static void