mirror of
https://github.com/BLAKE3-team/BLAKE3
synced 2024-05-09 03:26:16 +02:00
Compare commits
3 Commits
7fbcd22725
...
8e4662b61c
Author | SHA1 | Date | |
---|---|---|---|
Sriranga Veeraraghavan | 8e4662b61c | ||
Jack O'Connor | 4ec3be8bfa | ||
Sriranga Veeraraghavan | bab101ce8d |
|
@ -89,6 +89,7 @@ static void cpuidex(uint32_t out[4], uint32_t id, uint32_t sid) {
|
|||
#endif
|
||||
|
||||
enum cpu_feature {
|
||||
NONE = 0,
|
||||
SSE2 = 1 << 0,
|
||||
SSSE3 = 1 << 1,
|
||||
SSE41 = 1 << 2,
|
||||
|
@ -265,11 +266,11 @@ void blake3_hash_many(const uint8_t *const *inputs, size_t num_inputs,
|
|||
blake3_hash_many_neon(inputs, num_inputs, blocks, key, counter,
|
||||
increment_counter, flags, flags_start, flags_end, out);
|
||||
return;
|
||||
#endif
|
||||
|
||||
#else
|
||||
blake3_hash_many_portable(inputs, num_inputs, blocks, key, counter,
|
||||
increment_counter, flags, flags_start, flags_end,
|
||||
out);
|
||||
#endif
|
||||
}
|
||||
|
||||
// The dynamically detected SIMD degree of the current platform.
|
||||
|
|
|
@ -279,6 +279,10 @@ void blake3_hash_many_neon(const uint8_t *const *inputs, size_t num_inputs,
|
|||
uint64_t counter, bool increment_counter,
|
||||
uint8_t flags, uint8_t flags_start,
|
||||
uint8_t flags_end, uint8_t *out);
|
||||
void blake3_hash4_neon(const uint8_t *const *inputs, size_t blocks,
|
||||
const uint32_t key[8], uint64_t counter,
|
||||
bool increment_counter, uint8_t flags,
|
||||
uint8_t flags_start, uint8_t flags_end, uint8_t *out);
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -78,23 +78,14 @@ fn compress(
|
|||
block_len: u32,
|
||||
flags: u32,
|
||||
) -> [u32; 16] {
|
||||
let counter_low = counter as u32;
|
||||
let counter_high = (counter >> 32) as u32;
|
||||
#[rustfmt::skip]
|
||||
let mut state = [
|
||||
chaining_value[0],
|
||||
chaining_value[1],
|
||||
chaining_value[2],
|
||||
chaining_value[3],
|
||||
chaining_value[4],
|
||||
chaining_value[5],
|
||||
chaining_value[6],
|
||||
chaining_value[7],
|
||||
IV[0],
|
||||
IV[1],
|
||||
IV[2],
|
||||
IV[3],
|
||||
counter as u32,
|
||||
(counter >> 32) as u32,
|
||||
block_len,
|
||||
flags,
|
||||
chaining_value[0], chaining_value[1], chaining_value[2], chaining_value[3],
|
||||
chaining_value[4], chaining_value[5], chaining_value[6], chaining_value[7],
|
||||
IV[0], IV[1], IV[2], IV[3],
|
||||
counter_low, counter_high, block_len, flags,
|
||||
];
|
||||
let mut block = *block_words;
|
||||
|
||||
|
|
Loading…
Reference in New Issue