11#ifdef ENABLE_ARM_SHANI
19alignas(
uint32x4_t)
static constexpr std::array<uint32_t, 64>
K =
21 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
22 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
23 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
24 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
25 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
26 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
27 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
28 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
29 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
30 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
31 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
32 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
33 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
34 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
35 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
36 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2,
200void Transform_2way(
unsigned char* output,
const unsigned char* input)
203 alignas(
uint32x4_t)
static constexpr std::array<uint32_t, 8>
INIT = {
204 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
205 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
209 alignas(
uint32x4_t)
static constexpr std::array<uint32_t, 64>
MIDS = {
210 0xc28a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
211 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
212 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
213 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf374,
214 0x649b69c1, 0xf0fe4786, 0x0fe1edc6, 0x240cf254,
215 0x4fe9346f, 0x6cc984be, 0x61b9411e, 0x16f988fa,
216 0xf2c65152, 0xa88e5a6d, 0xb019fc65, 0xb9d99ec7,
217 0x9a1231c3, 0xe70eeaa0, 0xfdb1232b, 0xc7353eb0,
218 0x3069bad5, 0xcb976d5f, 0x5a0f118f, 0xdc1eeefd,
219 0x0a35b689, 0xde0b7a04, 0x58f4ca9d, 0xe15d5b16,
220 0x007f3e86, 0x37088980, 0xa507ea32, 0x6fab9537,
221 0x17406110, 0x0d8cd6f1, 0xcdaa3b6d, 0xc0bbbe37,
222 0x83613bda, 0xdb48a363, 0x0b02e931, 0x6fd15ca7,
223 0x521afaca, 0x31338431, 0x6ed41a95, 0x6d437890,
224 0xc39c91f2, 0x9eccabbd, 0xb5c9a0e6, 0x532fb63c,
225 0xd2c741c6, 0x07237ea3, 0xa4954b68, 0x4c191d76
229 alignas(
uint32x4_t)
static constexpr std::array<uint32_t, 12>
FINS = {
230 0x5807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
231 0x80000000, 0x00000000, 0x00000000, 0x00000000,
232 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf274
236 alignas(
uint32x4_t)
static constexpr std::array<uint32_t, 8>
FINAL = {0x80000000, 0, 0, 0, 0, 0, 0, 0x100};
void Transform(uint32_t *s, const unsigned char *chunk, size_t blocks)
void Transform_2way(unsigned char *out, const unsigned char *in)
@ FINAL
Neither this tx nor a mempool ancestor signals rbf.
constexpr auto Ticks(Dur2 d)
Helper to count the seconds of a duration/time_point.