diff options
author | Franziskus Kiefer <franziskuskiefer@gmail.com> | 2018-03-06 08:57:41 +0100 |
---|---|---|
committer | Franziskus Kiefer <franziskuskiefer@gmail.com> | 2018-03-06 08:57:41 +0100 |
commit | b8864ce240649866ec5c5234b7fc80531051aa54 (patch) | |
tree | 61a9961551c7212bacbba3f2cdb547522c1e7cbf | |
parent | 80059f0df685235533262a74ac9c4216e02a301d (diff) | |
download | nss-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/Dockerfile | 2 | ||||
-rw-r--r-- | lib/freebl/verified/Hacl_Chacha20_Vec128.c | 30 |
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 |