Skip to content

Commit

Permalink
Merge 24bff9a into 4d3ac1c
Browse files Browse the repository at this point in the history
  • Loading branch information
pnmadelaine committed Nov 28, 2023
2 parents 4d3ac1c + 24bff9a commit 6e21687
Show file tree
Hide file tree
Showing 467 changed files with 51,436 additions and 60,881 deletions.
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

0 comments on commit 6e21687

Please sign in to comment.