Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update to HACL* ae5d839c2e1fa95055b618cda60aeb1c486c720c #377

Merged
merged 35 commits into from
Nov 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
fca2de3
update to HACL* 7d108f6d5bc6c31446fa13720b2c1ea74f104f3a
pnmadelaine Mar 13, 2023
df4a0ed
fix build
pnmadelaine Mar 13, 2023
cd22e7f
fix tests
pnmadelaine Mar 13, 2023
4441386
fix benchmarks
pnmadelaine Mar 14, 2023
969ac7f
fix js bindings
pnmadelaine Mar 14, 2023
9150a98
fix rust bindings
pnmadelaine Mar 14, 2023
28253e1
update to HACL* 72627c16662a39b57049a9b43d429f0429fac593
pnmadelaine Mar 14, 2023
f3ca703
fix build
pnmadelaine Mar 14, 2023
b2b0572
fix tests
pnmadelaine Mar 14, 2023
a501f85
fix benchmarks
pnmadelaine Mar 14, 2023
1ec6659
fix config
pnmadelaine Mar 14, 2023
bddbb07
fix js bindings
pnmadelaine Mar 14, 2023
fb1e2a3
fix rust bindings
pnmadelaine Mar 16, 2023
ee361fb
restore `ocaml/lib/Lib_RandomBuffer_System_bindings.ml`
pnmadelaine Mar 17, 2023
f60788e
fix ocaml bindings
pnmadelaine Mar 17, 2023
02f1e58
update to HACL* d00b6fb8d54a72c37de67587594e9406fa67594a
pnmadelaine Mar 24, 2023
0af7e78
fix build
pnmadelaine Mar 24, 2023
3c3ae65
fix tests
pnmadelaine Mar 24, 2023
53bf69b
restore `ocaml/lib/Lib_RandomBuffer_System_bindings.ml`
pnmadelaine Mar 24, 2023
9c4ab45
fix ocaml bindings
pnmadelaine Mar 24, 2023
a805a39
Merge branch 'main' into pnmadelaine-update
pnmadelaine Mar 28, 2023
8d508f3
update to HACL* 01021a17836f2d62aa049964a7235c0a89e2e1a1
pnmadelaine Mar 29, 2023
ab20f58
fix js bindings
pnmadelaine Mar 29, 2023
9057155
update ocaml blocklist
pnmadelaine Mar 29, 2023
83d7130
merge and update
pnmadelaine Apr 18, 2023
dfdf26a
merge and update
pnmadelaine Nov 3, 2023
09d121e
update to HACL* 2706a814a711b62e5b0e271b2c3c8696a6239663
pnmadelaine Nov 7, 2023
205f216
ocaml: parallelize build
pnmadelaine Nov 7, 2023
4ae3551
update to HACL* ae5d839c2e1fa95055b618cda60aeb1c486c720c
pnmadelaine Nov 17, 2023
cf3e761
fix by Jonathan Protzenko
pnmadelaine Nov 21, 2023
052ab92
fix js
pnmadelaine Nov 21, 2023
cfa7d3d
doc update
pnmadelaine Nov 27, 2023
93541dc
doc update
pnmadelaine Nov 28, 2023
6ef7a0d
update rust allowlist
pnmadelaine Nov 28, 2023
24bff9a
Update js.yml
franziskuskiefer Nov 28, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion .github/workflows/js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ jobs:
- uses: actions/checkout@v3

- name: Setup
run: sudo apt-get install ninja-build nodejs
run: |
sudo apt-get update
sudo apt-get install ninja-build nodejs

- name: Build JS bindings
run: |
Expand Down
137 changes: 52 additions & 85 deletions benchmarks/blake.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,17 @@
*/

#include "EverCrypt_Hash.h"
#include "Hacl_Hash_Blake2.h"
#include "Hacl_Streaming_Blake2.h"
#include "Hacl_Hash_Blake2b.h"
#include "Hacl_Hash_Blake2s.h"

#include "util.h"

#ifdef HACL_CAN_COMPILE_VEC128
#include "Hacl_Hash_Blake2s_128.h"
#include "Hacl_Streaming_Blake2s_128.h"
#include "Hacl_Hash_Blake2s_Simd128.h"
#endif

#ifdef HACL_CAN_COMPILE_VEC256
#include "Hacl_Hash_Blake2b_256.h"
#include "Hacl_Streaming_Blake2b_256.h"
#include "Hacl_Hash_Blake2b_Simd256.h"
#endif

#include "blake2.h"
Expand Down Expand Up @@ -47,12 +45,9 @@ HACL_blake2b_32_oneshot(benchmark::State& state)
bytes input(state.range(0), 0xAB);

for (auto _ : state) {
Hacl_Blake2b_32_blake2b(digest2b.size(),
digest2b.data(),
input.size(),
(uint8_t*)input.data(),
0,
NULL);
Hacl_Hash_Blake2b_hash_with_key(
digest2b.data(), digest2b.size(), (uint8_t*)input.data(), input.size(),
NULL, 0);
}
}

Expand All @@ -70,12 +65,9 @@ HACL_blake2b_vec256_oneshot(benchmark::State& state)
bytes input(state.range(0), 0xAB);

for (auto _ : state) {
Hacl_Blake2b_256_blake2b(digest2b.size(),
digest2b.data(),
input.size(),
(uint8_t*)input.data(),
0,
NULL);
Hacl_Hash_Blake2b_Simd256_hash_with_key(
digest2b.data(), digest2b.size(), (uint8_t*)input.data(), input.size(),
NULL, 0);
}
}

Expand All @@ -89,9 +81,7 @@ EverCrypt_blake2b_oneshot(benchmark::State& state)

for (auto _ : state) {
EverCrypt_Hash_Incremental_hash(Spec_Hash_Definitions_Blake2B,
digest2b.data(),
input.data(),
input.size());
digest2b.data(), input.data(), input.size());
}
}

Expand All @@ -113,12 +103,9 @@ static void
HACL_blake2b_32_oneshot_keyed(benchmark::State& state)
{
for (auto _ : state) {
Hacl_Blake2b_32_blake2b(digest2b.size(),
digest2b.data(),
input.size(),
(uint8_t*)input.data(),
key.size(),
key.data());
Hacl_Hash_Blake2b_hash_with_key(
digest2b.data(), digest2b.size(), (uint8_t*)input.data(), input.size(),
key.data(), key.size());
}
}

Expand All @@ -134,12 +121,9 @@ HACL_blake2b_vec256_oneshot_keyed(benchmark::State& state)
}

for (auto _ : state) {
Hacl_Blake2b_256_blake2b(digest2b.size(),
digest2b.data(),
input.size(),
(uint8_t*)input.data(),
key.size(),
key.data());
Hacl_Hash_Blake2b_Simd256_hash_with_key(
digest2b.data(), digest2b.size(), (uint8_t*)input.data(), input.size(),
key.data(), key.size());
}
}

Expand Down Expand Up @@ -175,8 +159,8 @@ HACL_blake2s_32_oneshot(benchmark::State& state)
bytes input(state.range(0), 0xAB);

for (auto _ : state) {
Hacl_Blake2s_32_blake2s(
digest2s.size(), digest2s.data(), input.size(), input.data(), 0, NULL);
Hacl_Hash_Blake2s_hash_with_key(
digest2s.data(), digest2s.size(), input.data(), input.size(), NULL, 0);
}
}

Expand All @@ -194,8 +178,8 @@ HACL_blake2s_vec128_oneshot(benchmark::State& state)
bytes input(state.range(0), 0xAB);

for (auto _ : state) {
Hacl_Blake2s_128_blake2s(
digest2s.size(), digest2s.data(), input.size(), input.data(), 0, NULL);
Hacl_Hash_Blake2s_Simd128_hash_with_key(
digest2s.data(), digest2s.size(), input.data(), input.size(), NULL, 0);
}
}

Expand All @@ -209,9 +193,7 @@ EverCrypt_blake2s_oneshot(benchmark::State& state)

for (auto _ : state) {
EverCrypt_Hash_Incremental_hash(Spec_Hash_Definitions_Blake2S,
digest2s.data(),
input.data(),
input.size());
digest2s.data(), input.data(), input.size());
}
}

Expand All @@ -233,12 +215,9 @@ static void
HACL_blake2s_32_oneshot_keyed(benchmark::State& state)
{
for (auto _ : state) {
Hacl_Blake2s_32_blake2s(digest2s.size(),
digest2s.data(),
input.size(),
(uint8_t*)input.data(),
key.size(),
key.data());
Hacl_Hash_Blake2s_hash_with_key(
digest2s.data(), digest2s.size(), (uint8_t*)input.data(), input.size(),
key.data(), key.size());
}
}

Expand All @@ -254,12 +233,9 @@ HACL_blake2s_vec128_oneshot_keyed(benchmark::State& state)
}

for (auto _ : state) {
Hacl_Blake2s_128_blake2s(digest2s.size(),
digest2s.data(),
input.size(),
(uint8_t*)input.data(),
key.size(),
key.data());
Hacl_Hash_Blake2s_Simd128_hash_with_key(
digest2s.data(), digest2s.size(), (uint8_t*)input.data(), input.size(),
key.data(), key.size());
}
}

Expand Down Expand Up @@ -295,19 +271,18 @@ HACL_blake2b_32_streaming(benchmark::State& state)
uint8_t digest[HACL_HASH_BLAKE2B_DIGEST_LENGTH_MAX];

// Init
Hacl_Streaming_Blake2_blake2b_32_state_s* ctx =
Hacl_Streaming_Blake2_blake2b_32_no_key_create_in();
Hacl_Streaming_Blake2_blake2b_32_no_key_init(ctx);
Hacl_Hash_Blake2b_state_t* ctx =
Hacl_Hash_Blake2b_malloc();

// Update
for (auto chunk : chunk(input, chunk_len)) {
Hacl_Streaming_Blake2_blake2b_32_no_key_update(
Hacl_Hash_Blake2b_update(
ctx, (uint8_t*)chunk.data(), chunk.size());
}

// Finish
Hacl_Streaming_Blake2_blake2b_32_no_key_finish(ctx, digest);
Hacl_Streaming_Blake2_blake2b_32_no_key_free(ctx);
Hacl_Hash_Blake2b_digest(ctx, digest);
Hacl_Hash_Blake2b_free(ctx);
}
}

Expand Down Expand Up @@ -348,19 +323,18 @@ HACL_blake2b_vec256_streaming(benchmark::State& state)
uint8_t digest[HACL_HASH_BLAKE2B_DIGEST_LENGTH_MAX];

// Init
Hacl_Streaming_Blake2b_256_blake2b_256_state_s* ctx =
Hacl_Streaming_Blake2b_256_blake2b_256_no_key_create_in();
Hacl_Streaming_Blake2b_256_blake2b_256_no_key_init(ctx);
Hacl_Hash_Blake2b_Simd256_state_t* ctx =
Hacl_Hash_Blake2b_Simd256_malloc();

// Update
for (auto chunk : chunk(input, chunk_len)) {
Hacl_Streaming_Blake2b_256_blake2b_256_no_key_update(
Hacl_Hash_Blake2b_Simd256_update(
ctx, (uint8_t*)chunk.data(), chunk.size());
}

// Finish
Hacl_Streaming_Blake2b_256_blake2b_256_no_key_finish(ctx, digest);
Hacl_Streaming_Blake2b_256_blake2b_256_no_key_free(ctx);
Hacl_Hash_Blake2b_Simd256_digest(ctx, digest);
Hacl_Hash_Blake2b_Simd256_free(ctx);
}
}

Expand All @@ -374,17 +348,16 @@ EverCrypt_blake2b_streaming(benchmark::State& state)
uint8_t digest[HACL_HASH_BLAKE2B_DIGEST_LENGTH_MAX];

// Init
EverCrypt_Hash_Incremental_hash_state_s* ctx =
EverCrypt_Hash_Incremental_create_in(Spec_Hash_Definitions_Blake2B);
EverCrypt_Hash_Incremental_init(ctx);
EverCrypt_Hash_Incremental_state_t* ctx =
EverCrypt_Hash_Incremental_malloc(Spec_Hash_Definitions_Blake2B);

// Update
for (auto chunk : chunk(input, chunk_len)) {
EverCrypt_Hash_Incremental_update(ctx, chunk.data(), chunk.size());
}

// Finish
EverCrypt_Hash_Incremental_finish(ctx, digest);
EverCrypt_Hash_Incremental_digest(ctx, digest);
EverCrypt_Hash_Incremental_free(ctx);
}
}
Expand All @@ -411,19 +384,16 @@ HACL_blake2s_32_streaming(benchmark::State& state)
uint8_t digest[HACL_HASH_BLAKE2S_DIGEST_LENGTH_MAX];

// Init
Hacl_Streaming_Blake2_blake2s_32_state_s* ctx =
Hacl_Streaming_Blake2_blake2s_32_no_key_create_in();
Hacl_Streaming_Blake2_blake2s_32_no_key_init(ctx);
Hacl_Hash_Blake2s_state_t* ctx = Hacl_Hash_Blake2s_malloc();

// Update
for (auto chunk : chunk(input, chunk_len)) {
Hacl_Streaming_Blake2_blake2s_32_no_key_update(
ctx, (uint8_t*)chunk.data(), chunk.size());
Hacl_Hash_Blake2s_update(ctx, (uint8_t*)chunk.data(), chunk.size());
}

// Finish
Hacl_Streaming_Blake2_blake2s_32_no_key_finish(ctx, digest);
Hacl_Streaming_Blake2_blake2s_32_no_key_free(ctx);
Hacl_Hash_Blake2s_digest(ctx, digest);
Hacl_Hash_Blake2s_free(ctx);
}
}

Expand Down Expand Up @@ -464,19 +434,17 @@ HACL_blake2s_vec128_streaming(benchmark::State& state)
uint8_t digest[HACL_HASH_BLAKE2S_DIGEST_LENGTH_MAX];

// Init
Hacl_Streaming_Blake2s_128_blake2s_128_state_s* ctx =
Hacl_Streaming_Blake2s_128_blake2s_128_no_key_create_in();
Hacl_Streaming_Blake2s_128_blake2s_128_no_key_init(ctx);
Hacl_Hash_Blake2s_Simd128_state_t* ctx = Hacl_Hash_Blake2s_Simd128_malloc();

// Update
for (auto chunk : chunk(input, chunk_len)) {
Hacl_Streaming_Blake2s_128_blake2s_128_no_key_update(
Hacl_Hash_Blake2s_Simd128_update(
ctx, (uint8_t*)chunk.data(), chunk.size());
}

// Finish
Hacl_Streaming_Blake2s_128_blake2s_128_no_key_finish(ctx, digest);
Hacl_Streaming_Blake2s_128_blake2s_128_no_key_free(ctx);
Hacl_Hash_Blake2s_Simd128_digest(ctx, digest);
Hacl_Hash_Blake2s_Simd128_free(ctx);
}
}

Expand All @@ -490,17 +458,16 @@ EverCrypt_blake2s_streaming(benchmark::State& state)
uint8_t digest[HACL_HASH_BLAKE2S_DIGEST_LENGTH_MAX];

// Init
EverCrypt_Hash_Incremental_hash_state_s* ctx =
EverCrypt_Hash_Incremental_create_in(Spec_Hash_Definitions_Blake2S);
EverCrypt_Hash_Incremental_init(ctx);
EverCrypt_Hash_Incremental_state_t* ctx =
EverCrypt_Hash_Incremental_malloc(Spec_Hash_Definitions_Blake2S);

// Update
for (auto chunk : chunk(input, chunk_len)) {
EverCrypt_Hash_Incremental_update(ctx, chunk.data(), chunk.size());
}

// Finish
EverCrypt_Hash_Incremental_finish(ctx, digest);
EverCrypt_Hash_Incremental_digest(ctx, digest);
EverCrypt_Hash_Incremental_free(ctx);
}
}
Expand Down
39 changes: 12 additions & 27 deletions benchmarks/chacha20poly1305.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
* - http://opensource.org/licenses/MIT
*/

#include "Hacl_Chacha20Poly1305_32.h"
#include "Hacl_AEAD_Chacha20Poly1305.h"
#ifdef HACL_CAN_COMPILE_VEC128
#include "Hacl_Chacha20Poly1305_128.h"
#include "Hacl_AEAD_Chacha20Poly1305_Simd128.h"
#endif
#ifdef HACL_CAN_COMPILE_VEC256
#include "Hacl_Chacha20Poly1305_256.h"
#include "Hacl_AEAD_Chacha20Poly1305_Simd256.h"
#endif

#include "EverCrypt_AEAD.h"
Expand Down Expand Up @@ -112,14 +112,9 @@ static void
HACL_Chacha20Poly1305_32_encrypt(benchmark::State& state)
{
for (auto _ : state) {
Hacl_Chacha20Poly1305_32_aead_encrypt(key.data(),
nonce.data(),
aad.size(),
aad.data(),
INPUT_LEN,
plaintext.data(),
ciphertext.data(),
mac.data());
Hacl_AEAD_Chacha20Poly1305_encrypt(
ciphertext.data(), mac.data(), plaintext.data(), INPUT_LEN,
aad.data(), aad.size(), key.data(), nonce.data());
}

if (ciphertext != expected_ciphertext) {
Expand All @@ -139,14 +134,9 @@ HACL_Chacha20Poly1305_Vec128_encrypt(benchmark::State& state)
}

for (auto _ : state) {
Hacl_Chacha20Poly1305_128_aead_decrypt(key.data(),
nonce.data(),
aad.size(),
aad.data(),
INPUT_LEN,
plaintext.data(),
ciphertext.data(),
mac.data());
Hacl_AEAD_Chacha20Poly1305_Simd128_decrypt(
plaintext.data(), ciphertext.data(), INPUT_LEN, aad.data(),
aad.size(), key.data(), nonce.data(), mac.data());
}

if (ciphertext != expected_ciphertext) {
Expand All @@ -167,14 +157,9 @@ HACL_Chacha20Poly1305_Vec256_encrypt(benchmark::State& state)
}

for (auto _ : state) {
Hacl_Chacha20Poly1305_256_aead_encrypt(key.data(),
nonce.data(),
aad.size(),
aad.data(),
INPUT_LEN,
plaintext.data(),
ciphertext.data(),
mac.data());
Hacl_AEAD_Chacha20Poly1305_Simd256_encrypt(
ciphertext.data(), mac.data(), plaintext.data(), INPUT_LEN,
aad.data(), aad.size(), key.data(), nonce.data());
}

if (ciphertext != expected_ciphertext) {
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/hmac.cc
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ BENCHMARK_CAPTURE(
sha1,
from_hex("7DD9CDC17DD7C7CD4B1D39C13FA7E511354CC6EB7F5BEB07ED2D353E138A9428"),
HACL_MAC_HMAC_SHA1_TAG_LEN,
Hacl_HMAC_legacy_compute_sha1)
Hacl_HMAC_compute_sha1)
->Setup(DoSetup)
->Arg(4096);

Expand Down
Loading
Loading