summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Modules/_blake2/impl
diff options
context:
space:
mode:
authorshadchin <[email protected]>2026-01-22 08:29:44 +0300
committershadchin <[email protected]>2026-01-22 08:53:12 +0300
commit1d7bb883c2ff9b622bfa29f1de93fde43e06906e (patch)
treea492d4882c0a6ed6d3460a9862b2676ff1b82853 /contrib/tools/python3/Modules/_blake2/impl
parent6a892f38b9b2c462e7e081d687d74af844a0279d (diff)
Switch Python 3 on contrib/libs/blake2
commit_hash:71d95ae6feb5796edc36f16859e57cf07a56a184
Diffstat (limited to 'contrib/tools/python3/Modules/_blake2/impl')
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2-config.h71
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2-impl.h162
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2.h177
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2b-load-sse2.h68
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2b-load-sse41.h402
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2b-ref.c379
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2b-round.h160
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2b.c436
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2s-load-sse2.h59
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2s-load-sse41.h229
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2s-load-xop.h189
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2s-ref.c368
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2s-round.h91
-rw-r--r--contrib/tools/python3/Modules/_blake2/impl/blake2s.c415
14 files changed, 0 insertions, 3206 deletions
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2-config.h b/contrib/tools/python3/Modules/_blake2/impl/blake2-config.h
deleted file mode 100644
index c09cb4bcf06..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2-config.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2_CONFIG_H__
-#define __BLAKE2_CONFIG_H__
-
-#if defined(__SSE2__)
-#define HAVE_SSE2
-#endif
-
-#if defined(__SSSE3__)
-#define HAVE_SSSE3
-#endif
-
-#if defined(__SSE4_1__)
-#define HAVE_SSE4_1
-#endif
-
-#if defined(__AVX__)
-#define HAVE_AVX
-#endif
-
-#if defined(__XOP__)
-#define HAVE_XOP
-#endif
-
-
-#ifdef HAVE_AVX2
-#ifndef HAVE_AVX
-#define HAVE_AVX
-#endif
-#endif
-
-#ifdef HAVE_XOP
-#ifndef HAVE_AVX
-#define HAVE_AVX
-#endif
-#endif
-
-#ifdef HAVE_AVX
-#ifndef HAVE_SSE4_1
-#define HAVE_SSE4_1
-#endif
-#endif
-
-#ifdef HAVE_SSE4_1
-#ifndef HAVE_SSSE3
-#define HAVE_SSSE3
-#endif
-#endif
-
-#ifdef HAVE_SSSE3
-#define HAVE_SSE2
-#endif
-
-#if !defined(HAVE_SSE2)
-#error "This code requires at least SSE2."
-#endif
-
-#endif
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2-impl.h b/contrib/tools/python3/Modules/_blake2/impl/blake2-impl.h
deleted file mode 100644
index 9d2fbb72fc1..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2-impl.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2_IMPL_H__
-#define __BLAKE2_IMPL_H__
-
-#if defined(_WIN32) || defined(WIN32)
-#include <windows.h>
-#endif
-
-#include <stddef.h>
-#include <stdint.h>
-#include <string.h>
-
-#define BLAKE2_IMPL_CAT(x,y) x ## y
-#define BLAKE2_IMPL_EVAL(x,y) BLAKE2_IMPL_CAT(x,y)
-#define BLAKE2_IMPL_NAME(fun) BLAKE2_IMPL_EVAL(fun, SUFFIX)
-
-static inline uint32_t load32( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint32_t w;
- memcpy( &w, src, sizeof( w ) );
- return w;
-#else
- const uint8_t *p = ( uint8_t * )src;
- uint32_t w = *p++;
- w |= ( uint32_t )( *p++ ) << 8;
- w |= ( uint32_t )( *p++ ) << 16;
- w |= ( uint32_t )( *p++ ) << 24;
- return w;
-#endif
-}
-
-static inline uint64_t load64( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint64_t w;
- memcpy( &w, src, sizeof( w ) );
- return w;
-#else
- const uint8_t *p = ( uint8_t * )src;
- uint64_t w = *p++;
- w |= ( uint64_t )( *p++ ) << 8;
- w |= ( uint64_t )( *p++ ) << 16;
- w |= ( uint64_t )( *p++ ) << 24;
- w |= ( uint64_t )( *p++ ) << 32;
- w |= ( uint64_t )( *p++ ) << 40;
- w |= ( uint64_t )( *p++ ) << 48;
- w |= ( uint64_t )( *p++ ) << 56;
- return w;
-#endif
-}
-
-static inline void store32( void *dst, uint32_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy( dst, &w, sizeof( w ) );
-#else
- uint8_t *p = ( uint8_t * )dst;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w;
-#endif
-}
-
-static inline void store64( void *dst, uint64_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy( dst, &w, sizeof( w ) );
-#else
- uint8_t *p = ( uint8_t * )dst;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w;
-#endif
-}
-
-static inline uint64_t load48( const void *src )
-{
- const uint8_t *p = ( const uint8_t * )src;
- uint64_t w = *p++;
- w |= ( uint64_t )( *p++ ) << 8;
- w |= ( uint64_t )( *p++ ) << 16;
- w |= ( uint64_t )( *p++ ) << 24;
- w |= ( uint64_t )( *p++ ) << 32;
- w |= ( uint64_t )( *p++ ) << 40;
- return w;
-}
-
-static inline void store48( void *dst, uint64_t w )
-{
- uint8_t *p = ( uint8_t * )dst;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w;
-}
-
-static inline uint32_t rotl32( const uint32_t w, const unsigned c )
-{
- return ( w << c ) | ( w >> ( 32 - c ) );
-}
-
-static inline uint64_t rotl64( const uint64_t w, const unsigned c )
-{
- return ( w << c ) | ( w >> ( 64 - c ) );
-}
-
-static inline uint32_t rotr32( const uint32_t w, const unsigned c )
-{
- return ( w >> c ) | ( w << ( 32 - c ) );
-}
-
-static inline uint64_t rotr64( const uint64_t w, const unsigned c )
-{
- return ( w >> c ) | ( w << ( 64 - c ) );
-}
-
-/* prevents compiler optimizing out memset() */
-static inline void secure_zero_memory(void *v, size_t n)
-{
-#if defined(_WIN32) || defined(WIN32)
- SecureZeroMemory(v, n);
-#elif defined(__hpux)
- static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
- memset_v(v, 0, n);
-#else
-// prioritize first the general C11 call
-#if defined(HAVE_MEMSET_S)
- memset_s(v, n, 0, n);
-#elif defined(HAVE_EXPLICIT_BZERO)
- explicit_bzero(v, n);
-#elif defined(HAVE_EXPLICIT_MEMSET)
- explicit_memset(v, 0, n);
-#else
- memset(v, 0, n);
- __asm__ __volatile__("" :: "r"(v) : "memory");
-#endif
-#endif
-}
-
-#endif
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2.h b/contrib/tools/python3/Modules/_blake2/impl/blake2.h
deleted file mode 100644
index a08d82efefe..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2_H__
-#define __BLAKE2_H__
-
-#include <stddef.h>
-#include <stdint.h>
-
-#if defined(_WIN32) || defined(__CYGWIN__)
- #define BLAKE2_DLL_IMPORT __declspec(dllimport)
- #define BLAKE2_DLL_EXPORT __declspec(dllexport)
- #define BLAKE2_DLL_PRIVATE
-#elif __GNUC__ >= 4
- #define BLAKE2_DLL_IMPORT __attribute__ ((visibility ("default")))
- #define BLAKE2_DLL_EXPORT __attribute__ ((visibility ("default")))
- #define BLAKE2_DLL_PRIVATE __attribute__ ((visibility ("hidden")))
-#else
- #define BLAKE2_DLL_IMPORT
- #define BLAKE2_DLL_EXPORT
- #define BLAKE2_DLL_PRIVATE
-#endif
-
-#if defined(BLAKE2_DLL)
- #if defined(BLAKE2_DLL_EXPORTS) // defined if we are building the DLL
- #define BLAKE2_API BLAKE2_DLL_EXPORT
- #else
- #define BLAKE2_API BLAKE2_DLL_IMPORT
- #endif
- #define BLAKE2_PRIVATE BLAKE2_DLL_PRIVATE // must only be used by hidden logic
-#else
- #define BLAKE2_API
- #define BLAKE2_PRIVATE
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#elif defined(_MSC_VER) && !defined(inline)
-#define inline __inline
-#endif
-
- enum blake2s_constant
- {
- BLAKE2S_BLOCKBYTES = 64,
- BLAKE2S_OUTBYTES = 32,
- BLAKE2S_KEYBYTES = 32,
- BLAKE2S_SALTBYTES = 8,
- BLAKE2S_PERSONALBYTES = 8
- };
-
- enum blake2b_constant
- {
- BLAKE2B_BLOCKBYTES = 128,
- BLAKE2B_OUTBYTES = 64,
- BLAKE2B_KEYBYTES = 64,
- BLAKE2B_SALTBYTES = 16,
- BLAKE2B_PERSONALBYTES = 16
- };
-
-#pragma pack(push, 1)
- typedef struct __blake2s_param
- {
- uint8_t digest_length; // 1
- uint8_t key_length; // 2
- uint8_t fanout; // 3
- uint8_t depth; // 4
- uint32_t leaf_length; // 8
- uint8_t node_offset[6];// 14
- uint8_t node_depth; // 15
- uint8_t inner_length; // 16
- // uint8_t reserved[0];
- uint8_t salt[BLAKE2S_SALTBYTES]; // 24
- uint8_t personal[BLAKE2S_PERSONALBYTES]; // 32
- } blake2s_param;
-
- typedef struct __blake2s_state
- {
- uint32_t h[8];
- uint32_t t[2];
- uint32_t f[2];
- uint8_t buf[2 * BLAKE2S_BLOCKBYTES];
- uint32_t buflen;
- uint8_t outlen;
- uint8_t last_node;
- } blake2s_state;
-
- typedef struct __blake2b_param
- {
- uint8_t digest_length; // 1
- uint8_t key_length; // 2
- uint8_t fanout; // 3
- uint8_t depth; // 4
- uint32_t leaf_length; // 8
- uint64_t node_offset; // 16
- uint8_t node_depth; // 17
- uint8_t inner_length; // 18
- uint8_t reserved[14]; // 32
- uint8_t salt[BLAKE2B_SALTBYTES]; // 48
- uint8_t personal[BLAKE2B_PERSONALBYTES]; // 64
- } blake2b_param;
-
- typedef struct __blake2b_state
- {
- uint64_t h[8];
- uint64_t t[2];
- uint64_t f[2];
- uint8_t buf[2 * BLAKE2B_BLOCKBYTES];
- uint32_t buflen;
- uint8_t outlen;
- uint8_t last_node;
- } blake2b_state;
-
- typedef struct __blake2sp_state
- {
- blake2s_state S[8][1];
- blake2s_state R[1];
- uint8_t buf[8 * BLAKE2S_BLOCKBYTES];
- uint32_t buflen;
- uint8_t outlen;
- } blake2sp_state;
-
- typedef struct __blake2bp_state
- {
- blake2b_state S[4][1];
- blake2b_state R[1];
- uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
- uint32_t buflen;
- uint8_t outlen;
- } blake2bp_state;
-#pragma pack(pop)
-
- // Streaming API
- BLAKE2_API int blake2s_init( blake2s_state *S, size_t outlen );
- BLAKE2_API int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- BLAKE2_API int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
- BLAKE2_API int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen );
- BLAKE2_API int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen );
-
- BLAKE2_API int blake2b_init( blake2b_state *S, size_t outlen );
- BLAKE2_API int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- BLAKE2_API int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
- BLAKE2_API int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen );
- BLAKE2_API int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen );
-
- BLAKE2_API int blake2sp_init( blake2sp_state *S, size_t outlen );
- BLAKE2_API int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
- BLAKE2_API int blake2sp_update( blake2sp_state *S, const uint8_t *in, size_t inlen );
- BLAKE2_API int blake2sp_final( blake2sp_state *S, uint8_t *out, size_t outlen );
-
- BLAKE2_API int blake2bp_init( blake2bp_state *S, size_t outlen );
- BLAKE2_API int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen );
- BLAKE2_API int blake2bp_update( blake2bp_state *S, const uint8_t *in, size_t inlen );
- BLAKE2_API int blake2bp_final( blake2bp_state *S, uint8_t *out, size_t outlen );
-
- // Simple API
- BLAKE2_API int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
- BLAKE2_API int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
- BLAKE2_API int blake2sp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
- BLAKE2_API int blake2bp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2b-load-sse2.h b/contrib/tools/python3/Modules/_blake2/impl/blake2b-load-sse2.h
deleted file mode 100644
index 1ba153c87d7..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2b-load-sse2.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2B_LOAD_SSE2_H__
-#define __BLAKE2B_LOAD_SSE2_H__
-
-#define LOAD_MSG_0_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4)
-#define LOAD_MSG_0_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5)
-#define LOAD_MSG_0_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12)
-#define LOAD_MSG_0_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13)
-#define LOAD_MSG_1_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9)
-#define LOAD_MSG_1_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15)
-#define LOAD_MSG_1_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11)
-#define LOAD_MSG_1_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7)
-#define LOAD_MSG_2_1(b0, b1) b0 = _mm_set_epi64x(m12, m11); b1 = _mm_set_epi64x(m15, m5)
-#define LOAD_MSG_2_2(b0, b1) b0 = _mm_set_epi64x(m0, m8); b1 = _mm_set_epi64x(m13, m2)
-#define LOAD_MSG_2_3(b0, b1) b0 = _mm_set_epi64x(m3, m10); b1 = _mm_set_epi64x(m9, m7)
-#define LOAD_MSG_2_4(b0, b1) b0 = _mm_set_epi64x(m6, m14); b1 = _mm_set_epi64x(m4, m1)
-#define LOAD_MSG_3_1(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m13)
-#define LOAD_MSG_3_2(b0, b1) b0 = _mm_set_epi64x(m1, m9); b1 = _mm_set_epi64x(m14, m12)
-#define LOAD_MSG_3_3(b0, b1) b0 = _mm_set_epi64x(m5, m2); b1 = _mm_set_epi64x(m15, m4)
-#define LOAD_MSG_3_4(b0, b1) b0 = _mm_set_epi64x(m10, m6); b1 = _mm_set_epi64x(m8, m0)
-#define LOAD_MSG_4_1(b0, b1) b0 = _mm_set_epi64x(m5, m9); b1 = _mm_set_epi64x(m10, m2)
-#define LOAD_MSG_4_2(b0, b1) b0 = _mm_set_epi64x(m7, m0); b1 = _mm_set_epi64x(m15, m4)
-#define LOAD_MSG_4_3(b0, b1) b0 = _mm_set_epi64x(m11, m14); b1 = _mm_set_epi64x(m3, m6)
-#define LOAD_MSG_4_4(b0, b1) b0 = _mm_set_epi64x(m12, m1); b1 = _mm_set_epi64x(m13, m8)
-#define LOAD_MSG_5_1(b0, b1) b0 = _mm_set_epi64x(m6, m2); b1 = _mm_set_epi64x(m8, m0)
-#define LOAD_MSG_5_2(b0, b1) b0 = _mm_set_epi64x(m10, m12); b1 = _mm_set_epi64x(m3, m11)
-#define LOAD_MSG_5_3(b0, b1) b0 = _mm_set_epi64x(m7, m4); b1 = _mm_set_epi64x(m1, m15)
-#define LOAD_MSG_5_4(b0, b1) b0 = _mm_set_epi64x(m5, m13); b1 = _mm_set_epi64x(m9, m14)
-#define LOAD_MSG_6_1(b0, b1) b0 = _mm_set_epi64x(m1, m12); b1 = _mm_set_epi64x(m4, m14)
-#define LOAD_MSG_6_2(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m10, m13)
-#define LOAD_MSG_6_3(b0, b1) b0 = _mm_set_epi64x(m6, m0); b1 = _mm_set_epi64x(m8, m9)
-#define LOAD_MSG_6_4(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m2)
-#define LOAD_MSG_7_1(b0, b1) b0 = _mm_set_epi64x(m7, m13); b1 = _mm_set_epi64x(m3, m12)
-#define LOAD_MSG_7_2(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m9, m1)
-#define LOAD_MSG_7_3(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m2, m8)
-#define LOAD_MSG_7_4(b0, b1) b0 = _mm_set_epi64x(m4, m0); b1 = _mm_set_epi64x(m10, m6)
-#define LOAD_MSG_8_1(b0, b1) b0 = _mm_set_epi64x(m14, m6); b1 = _mm_set_epi64x(m0, m11)
-#define LOAD_MSG_8_2(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m8, m3)
-#define LOAD_MSG_8_3(b0, b1) b0 = _mm_set_epi64x(m13, m12); b1 = _mm_set_epi64x(m10, m1)
-#define LOAD_MSG_8_4(b0, b1) b0 = _mm_set_epi64x(m7, m2); b1 = _mm_set_epi64x(m5, m4)
-#define LOAD_MSG_9_1(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m1, m7)
-#define LOAD_MSG_9_2(b0, b1) b0 = _mm_set_epi64x(m4, m2); b1 = _mm_set_epi64x(m5, m6)
-#define LOAD_MSG_9_3(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m13, m3)
-#define LOAD_MSG_9_4(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m0, m12)
-#define LOAD_MSG_10_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4)
-#define LOAD_MSG_10_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5)
-#define LOAD_MSG_10_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12)
-#define LOAD_MSG_10_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13)
-#define LOAD_MSG_11_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9)
-#define LOAD_MSG_11_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15)
-#define LOAD_MSG_11_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11)
-#define LOAD_MSG_11_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7)
-
-
-#endif
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2b-load-sse41.h b/contrib/tools/python3/Modules/_blake2/impl/blake2b-load-sse41.h
deleted file mode 100644
index f6c1bc8393f..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2b-load-sse41.h
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2B_LOAD_SSE41_H__
-#define __BLAKE2B_LOAD_SSE41_H__
-
-#define LOAD_MSG_0_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m0, m1); \
-b1 = _mm_unpacklo_epi64(m2, m3); \
-} while(0)
-
-
-#define LOAD_MSG_0_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m0, m1); \
-b1 = _mm_unpackhi_epi64(m2, m3); \
-} while(0)
-
-
-#define LOAD_MSG_0_3(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m4, m5); \
-b1 = _mm_unpacklo_epi64(m6, m7); \
-} while(0)
-
-
-#define LOAD_MSG_0_4(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m4, m5); \
-b1 = _mm_unpackhi_epi64(m6, m7); \
-} while(0)
-
-
-#define LOAD_MSG_1_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m7, m2); \
-b1 = _mm_unpackhi_epi64(m4, m6); \
-} while(0)
-
-
-#define LOAD_MSG_1_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m5, m4); \
-b1 = _mm_alignr_epi8(m3, m7, 8); \
-} while(0)
-
-
-#define LOAD_MSG_1_3(b0, b1) \
-do \
-{ \
-b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \
-b1 = _mm_unpackhi_epi64(m5, m2); \
-} while(0)
-
-
-#define LOAD_MSG_1_4(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m6, m1); \
-b1 = _mm_unpackhi_epi64(m3, m1); \
-} while(0)
-
-
-#define LOAD_MSG_2_1(b0, b1) \
-do \
-{ \
-b0 = _mm_alignr_epi8(m6, m5, 8); \
-b1 = _mm_unpackhi_epi64(m2, m7); \
-} while(0)
-
-
-#define LOAD_MSG_2_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m4, m0); \
-b1 = _mm_blend_epi16(m1, m6, 0xF0); \
-} while(0)
-
-
-#define LOAD_MSG_2_3(b0, b1) \
-do \
-{ \
-b0 = _mm_blend_epi16(m5, m1, 0xF0); \
-b1 = _mm_unpackhi_epi64(m3, m4); \
-} while(0)
-
-
-#define LOAD_MSG_2_4(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m7, m3); \
-b1 = _mm_alignr_epi8(m2, m0, 8); \
-} while(0)
-
-
-#define LOAD_MSG_3_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m3, m1); \
-b1 = _mm_unpackhi_epi64(m6, m5); \
-} while(0)
-
-
-#define LOAD_MSG_3_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m4, m0); \
-b1 = _mm_unpacklo_epi64(m6, m7); \
-} while(0)
-
-
-#define LOAD_MSG_3_3(b0, b1) \
-do \
-{ \
-b0 = _mm_blend_epi16(m1, m2, 0xF0); \
-b1 = _mm_blend_epi16(m2, m7, 0xF0); \
-} while(0)
-
-
-#define LOAD_MSG_3_4(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m3, m5); \
-b1 = _mm_unpacklo_epi64(m0, m4); \
-} while(0)
-
-
-#define LOAD_MSG_4_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m4, m2); \
-b1 = _mm_unpacklo_epi64(m1, m5); \
-} while(0)
-
-
-#define LOAD_MSG_4_2(b0, b1) \
-do \
-{ \
-b0 = _mm_blend_epi16(m0, m3, 0xF0); \
-b1 = _mm_blend_epi16(m2, m7, 0xF0); \
-} while(0)
-
-
-#define LOAD_MSG_4_3(b0, b1) \
-do \
-{ \
-b0 = _mm_blend_epi16(m7, m5, 0xF0); \
-b1 = _mm_blend_epi16(m3, m1, 0xF0); \
-} while(0)
-
-
-#define LOAD_MSG_4_4(b0, b1) \
-do \
-{ \
-b0 = _mm_alignr_epi8(m6, m0, 8); \
-b1 = _mm_blend_epi16(m4, m6, 0xF0); \
-} while(0)
-
-
-#define LOAD_MSG_5_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m1, m3); \
-b1 = _mm_unpacklo_epi64(m0, m4); \
-} while(0)
-
-
-#define LOAD_MSG_5_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m6, m5); \
-b1 = _mm_unpackhi_epi64(m5, m1); \
-} while(0)
-
-
-#define LOAD_MSG_5_3(b0, b1) \
-do \
-{ \
-b0 = _mm_blend_epi16(m2, m3, 0xF0); \
-b1 = _mm_unpackhi_epi64(m7, m0); \
-} while(0)
-
-
-#define LOAD_MSG_5_4(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m6, m2); \
-b1 = _mm_blend_epi16(m7, m4, 0xF0); \
-} while(0)
-
-
-#define LOAD_MSG_6_1(b0, b1) \
-do \
-{ \
-b0 = _mm_blend_epi16(m6, m0, 0xF0); \
-b1 = _mm_unpacklo_epi64(m7, m2); \
-} while(0)
-
-
-#define LOAD_MSG_6_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m2, m7); \
-b1 = _mm_alignr_epi8(m5, m6, 8); \
-} while(0)
-
-
-#define LOAD_MSG_6_3(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m0, m3); \
-b1 = _mm_shuffle_epi32(m4, _MM_SHUFFLE(1,0,3,2)); \
-} while(0)
-
-
-#define LOAD_MSG_6_4(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m3, m1); \
-b1 = _mm_blend_epi16(m1, m5, 0xF0); \
-} while(0)
-
-
-#define LOAD_MSG_7_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m6, m3); \
-b1 = _mm_blend_epi16(m6, m1, 0xF0); \
-} while(0)
-
-
-#define LOAD_MSG_7_2(b0, b1) \
-do \
-{ \
-b0 = _mm_alignr_epi8(m7, m5, 8); \
-b1 = _mm_unpackhi_epi64(m0, m4); \
-} while(0)
-
-
-#define LOAD_MSG_7_3(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m2, m7); \
-b1 = _mm_unpacklo_epi64(m4, m1); \
-} while(0)
-
-
-#define LOAD_MSG_7_4(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m0, m2); \
-b1 = _mm_unpacklo_epi64(m3, m5); \
-} while(0)
-
-
-#define LOAD_MSG_8_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m3, m7); \
-b1 = _mm_alignr_epi8(m0, m5, 8); \
-} while(0)
-
-
-#define LOAD_MSG_8_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m7, m4); \
-b1 = _mm_alignr_epi8(m4, m1, 8); \
-} while(0)
-
-
-#define LOAD_MSG_8_3(b0, b1) \
-do \
-{ \
-b0 = m6; \
-b1 = _mm_alignr_epi8(m5, m0, 8); \
-} while(0)
-
-
-#define LOAD_MSG_8_4(b0, b1) \
-do \
-{ \
-b0 = _mm_blend_epi16(m1, m3, 0xF0); \
-b1 = m2; \
-} while(0)
-
-
-#define LOAD_MSG_9_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m5, m4); \
-b1 = _mm_unpackhi_epi64(m3, m0); \
-} while(0)
-
-
-#define LOAD_MSG_9_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m1, m2); \
-b1 = _mm_blend_epi16(m3, m2, 0xF0); \
-} while(0)
-
-
-#define LOAD_MSG_9_3(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m7, m4); \
-b1 = _mm_unpackhi_epi64(m1, m6); \
-} while(0)
-
-
-#define LOAD_MSG_9_4(b0, b1) \
-do \
-{ \
-b0 = _mm_alignr_epi8(m7, m5, 8); \
-b1 = _mm_unpacklo_epi64(m6, m0); \
-} while(0)
-
-
-#define LOAD_MSG_10_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m0, m1); \
-b1 = _mm_unpacklo_epi64(m2, m3); \
-} while(0)
-
-
-#define LOAD_MSG_10_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m0, m1); \
-b1 = _mm_unpackhi_epi64(m2, m3); \
-} while(0)
-
-
-#define LOAD_MSG_10_3(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m4, m5); \
-b1 = _mm_unpacklo_epi64(m6, m7); \
-} while(0)
-
-
-#define LOAD_MSG_10_4(b0, b1) \
-do \
-{ \
-b0 = _mm_unpackhi_epi64(m4, m5); \
-b1 = _mm_unpackhi_epi64(m6, m7); \
-} while(0)
-
-
-#define LOAD_MSG_11_1(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m7, m2); \
-b1 = _mm_unpackhi_epi64(m4, m6); \
-} while(0)
-
-
-#define LOAD_MSG_11_2(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m5, m4); \
-b1 = _mm_alignr_epi8(m3, m7, 8); \
-} while(0)
-
-
-#define LOAD_MSG_11_3(b0, b1) \
-do \
-{ \
-b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \
-b1 = _mm_unpackhi_epi64(m5, m2); \
-} while(0)
-
-
-#define LOAD_MSG_11_4(b0, b1) \
-do \
-{ \
-b0 = _mm_unpacklo_epi64(m6, m1); \
-b1 = _mm_unpackhi_epi64(m3, m1); \
-} while(0)
-
-
-#endif
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2b-ref.c b/contrib/tools/python3/Modules/_blake2/impl/blake2b-ref.c
deleted file mode 100644
index e58c43659d9..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2b-ref.c
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-
-#include <stdint.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-static const uint64_t blake2b_IV[8] =
-{
- 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
- 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
- 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
- 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
-};
-
-static const uint8_t blake2b_sigma[12][16] =
-{
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
- { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
- { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
- { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
- { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
- { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
- { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
- { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
- { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }
-};
-
-
-static inline int blake2b_set_lastnode( blake2b_state *S )
-{
- S->f[1] = ~0ULL;
- return 0;
-}
-
-static inline int blake2b_clear_lastnode( blake2b_state *S )
-{
- S->f[1] = 0ULL;
- return 0;
-}
-
-/* Some helper functions, not necessarily useful */
-static inline int blake2b_set_lastblock( blake2b_state *S )
-{
- if( S->last_node ) blake2b_set_lastnode( S );
-
- S->f[0] = ~0ULL;
- return 0;
-}
-
-static inline int blake2b_clear_lastblock( blake2b_state *S )
-{
- if( S->last_node ) blake2b_clear_lastnode( S );
-
- S->f[0] = 0ULL;
- return 0;
-}
-
-static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
- return 0;
-}
-
-
-
-// Parameter-related functions
-static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length )
-{
- P->digest_length = digest_length;
- return 0;
-}
-
-static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout )
-{
- P->fanout = fanout;
- return 0;
-}
-
-static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth )
-{
- P->depth = depth;
- return 0;
-}
-
-static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length )
-{
- store32( &P->leaf_length, leaf_length );
- return 0;
-}
-
-static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset )
-{
- store64( &P->node_offset, node_offset );
- return 0;
-}
-
-static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth )
-{
- P->node_depth = node_depth;
- return 0;
-}
-
-static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length )
-{
- P->inner_length = inner_length;
- return 0;
-}
-
-static inline int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES] )
-{
- memcpy( P->salt, salt, BLAKE2B_SALTBYTES );
- return 0;
-}
-
-static inline int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES] )
-{
- memcpy( P->personal, personal, BLAKE2B_PERSONALBYTES );
- return 0;
-}
-
-static inline int blake2b_init0( blake2b_state *S )
-{
- memset( S, 0, sizeof( blake2b_state ) );
-
- for( int i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
-
- return 0;
-}
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2b_init( blake2b_state *S, size_t outlen );
- int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-#if defined(__cplusplus)
-}
-#endif
-
-/* init xors IV with input parameter block */
-int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
-{
- blake2b_init0( S );
- uint8_t *p = ( uint8_t * )( P );
-
- /* IV XOR ParamBlock */
- for( size_t i = 0; i < 8; ++i )
- S->h[i] ^= load64( p + sizeof( S->h[i] ) * i );
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-
-int blake2b_init( blake2b_state *S, size_t outlen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- P->digest_length = ( uint8_t ) outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store64( &P->node_offset, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2b_init_param( S, P );
-}
-
-
-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- P->digest_length = ( uint8_t ) outlen;
- P->key_length = ( uint8_t ) keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store64( &P->node_offset, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2b_init_param( S, P ) < 0 ) return -1;
-
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2b_update( S, block, BLAKE2B_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-static int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
-{
- uint64_t m[16];
- uint64_t v[16];
- size_t i;
-
- for( i = 0; i < 16; ++i )
- m[i] = load64( block + i * sizeof( m[i] ) );
-
- for( i = 0; i < 8; ++i )
- v[i] = S->h[i];
-
- v[ 8] = blake2b_IV[0];
- v[ 9] = blake2b_IV[1];
- v[10] = blake2b_IV[2];
- v[11] = blake2b_IV[3];
- v[12] = S->t[0] ^ blake2b_IV[4];
- v[13] = S->t[1] ^ blake2b_IV[5];
- v[14] = S->f[0] ^ blake2b_IV[6];
- v[15] = S->f[1] ^ blake2b_IV[7];
-#define G(r,i,a,b,c,d) \
- do { \
- a = a + b + m[blake2b_sigma[r][2*i+0]]; \
- d = rotr64(d ^ a, 32); \
- c = c + d; \
- b = rotr64(b ^ c, 24); \
- a = a + b + m[blake2b_sigma[r][2*i+1]]; \
- d = rotr64(d ^ a, 16); \
- c = c + d; \
- b = rotr64(b ^ c, 63); \
- } while(0)
-#define ROUND(r) \
- do { \
- G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \
- G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \
- G(r,2,v[ 2],v[ 6],v[10],v[14]); \
- G(r,3,v[ 3],v[ 7],v[11],v[15]); \
- G(r,4,v[ 0],v[ 5],v[10],v[15]); \
- G(r,5,v[ 1],v[ 6],v[11],v[12]); \
- G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \
- G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \
- } while(0)
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
- ROUND( 10 );
- ROUND( 11 );
-
- for( i = 0; i < 8; ++i )
- S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
-
-#undef G
-#undef ROUND
- return 0;
-}
-
-
-int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
-{
- while( inlen > 0 )
- {
- uint32_t left = S->buflen;
- uint32_t fill = 2 * BLAKE2B_BLOCKBYTES - left;
-
- if( inlen > fill )
- {
- memcpy( S->buf + left, in, fill ); // Fill buffer
- S->buflen += fill;
- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf ); // Compress
- memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); // Shift buffer left
- S->buflen -= BLAKE2B_BLOCKBYTES;
- in += fill;
- inlen -= fill;
- }
- else // inlen <= fill
- {
- memcpy( S->buf + left, in, inlen );
- S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
- in += inlen;
- inlen -= inlen;
- }
- }
-
- return 0;
-}
-
-int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2B_OUTBYTES];
- size_t i;
-
- if(S->outlen != outlen) return -1;
-
- if( S->buflen > BLAKE2B_BLOCKBYTES )
- {
- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf );
- S->buflen -= BLAKE2B_BLOCKBYTES;
- memmove( S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen );
- }
-
- blake2b_increment_counter( S, S->buflen );
- blake2b_set_lastblock( S );
- memset( S->buf + S->buflen, 0, 2 * BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */
- blake2b_compress( S, S->buf );
-
- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store64( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, outlen );
- return 0;
-}
-
-int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- blake2b_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2b_init( S, outlen ) < 0 ) return -1;
- }
-
- if( blake2b_update( S, ( uint8_t * )in, inlen ) < 0 ) return -1;
- return blake2b_final( S, out, outlen );
-}
-
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2b-round.h b/contrib/tools/python3/Modules/_blake2/impl/blake2b-round.h
deleted file mode 100644
index 5b452c4d63b..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2b-round.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2B_ROUND_H__
-#define __BLAKE2B_ROUND_H__
-
-#define LOAD(p) _mm_load_si128( (__m128i *)(p) )
-#define STORE(p,r) _mm_store_si128((__m128i *)(p), r)
-
-#define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
-#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r)
-
-#define TOF(reg) _mm_castsi128_ps((reg))
-#define TOI(reg) _mm_castps_si128((reg))
-
-#define LIKELY(x) __builtin_expect((x),1)
-
-
-/* Microarchitecture-specific macros */
-#ifndef HAVE_XOP
-#ifdef HAVE_SSSE3
-#define _mm_roti_epi64(x, c) \
- (-(c) == 32) ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2,3,0,1)) \
- : (-(c) == 24) ? _mm_shuffle_epi8((x), r24) \
- : (-(c) == 16) ? _mm_shuffle_epi8((x), r16) \
- : (-(c) == 63) ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_add_epi64((x), (x))) \
- : _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_slli_epi64((x), 64-(-(c))))
-#else
-#define _mm_roti_epi64(r, c) _mm_xor_si128(_mm_srli_epi64( (r), -(c) ),_mm_slli_epi64( (r), 64-(-(c)) ))
-#endif
-#else
-/* ... */
-#endif
-
-
-
-#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
- row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \
- row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \
- \
- row4l = _mm_xor_si128(row4l, row1l); \
- row4h = _mm_xor_si128(row4h, row1h); \
- \
- row4l = _mm_roti_epi64(row4l, -32); \
- row4h = _mm_roti_epi64(row4h, -32); \
- \
- row3l = _mm_add_epi64(row3l, row4l); \
- row3h = _mm_add_epi64(row3h, row4h); \
- \
- row2l = _mm_xor_si128(row2l, row3l); \
- row2h = _mm_xor_si128(row2h, row3h); \
- \
- row2l = _mm_roti_epi64(row2l, -24); \
- row2h = _mm_roti_epi64(row2h, -24); \
-
-#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
- row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \
- row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \
- \
- row4l = _mm_xor_si128(row4l, row1l); \
- row4h = _mm_xor_si128(row4h, row1h); \
- \
- row4l = _mm_roti_epi64(row4l, -16); \
- row4h = _mm_roti_epi64(row4h, -16); \
- \
- row3l = _mm_add_epi64(row3l, row4l); \
- row3h = _mm_add_epi64(row3h, row4h); \
- \
- row2l = _mm_xor_si128(row2l, row3l); \
- row2h = _mm_xor_si128(row2h, row3h); \
- \
- row2l = _mm_roti_epi64(row2l, -63); \
- row2h = _mm_roti_epi64(row2h, -63); \
-
-#if defined(HAVE_SSSE3)
-#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
- t0 = _mm_alignr_epi8(row2h, row2l, 8); \
- t1 = _mm_alignr_epi8(row2l, row2h, 8); \
- row2l = t0; \
- row2h = t1; \
- \
- t0 = row3l; \
- row3l = row3h; \
- row3h = t0; \
- \
- t0 = _mm_alignr_epi8(row4h, row4l, 8); \
- t1 = _mm_alignr_epi8(row4l, row4h, 8); \
- row4l = t1; \
- row4h = t0;
-
-#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
- t0 = _mm_alignr_epi8(row2l, row2h, 8); \
- t1 = _mm_alignr_epi8(row2h, row2l, 8); \
- row2l = t0; \
- row2h = t1; \
- \
- t0 = row3l; \
- row3l = row3h; \
- row3h = t0; \
- \
- t0 = _mm_alignr_epi8(row4l, row4h, 8); \
- t1 = _mm_alignr_epi8(row4h, row4l, 8); \
- row4l = t1; \
- row4h = t0;
-#else
-
-#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
- t0 = row4l;\
- t1 = row2l;\
- row4l = row3l;\
- row3l = row3h;\
- row3h = row4l;\
- row4l = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t0, t0)); \
- row4h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row4h, row4h)); \
- row2l = _mm_unpackhi_epi64(row2l, _mm_unpacklo_epi64(row2h, row2h)); \
- row2h = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(t1, t1))
-
-#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
- t0 = row3l;\
- row3l = row3h;\
- row3h = t0;\
- t0 = row2l;\
- t1 = row4l;\
- row2l = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(row2l, row2l)); \
- row2h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row2h, row2h)); \
- row4l = _mm_unpackhi_epi64(row4l, _mm_unpacklo_epi64(row4h, row4h)); \
- row4h = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t1, t1))
-
-#endif
-
-#if defined(HAVE_SSE4_1)
-#include "blake2b-load-sse41.h"
-#else
-#include "blake2b-load-sse2.h"
-#endif
-
-#define ROUND(r) \
- LOAD_MSG_ ##r ##_1(b0, b1); \
- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- LOAD_MSG_ ##r ##_2(b0, b1); \
- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \
- LOAD_MSG_ ##r ##_3(b0, b1); \
- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- LOAD_MSG_ ##r ##_4(b0, b1); \
- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h);
-
-#endif
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2b.c b/contrib/tools/python3/Modules/_blake2/impl/blake2b.c
deleted file mode 100644
index cef22838917..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2b.c
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-
-#include <stdint.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#include "blake2-config.h"
-
-#if defined(_MSC_VER)
-#include <intrin.h>
-#endif
-
-#if defined(HAVE_SSE2)
-#include <emmintrin.h>
-// MSVC only defines _mm_set_epi64x for x86_64...
-#if defined(_MSC_VER) && !defined(_M_X64) && !defined(__clang__)
-static inline __m128i _mm_set_epi64x( const uint64_t u1, const uint64_t u0 )
-{
- return _mm_set_epi32( u1 >> 32, u1, u0 >> 32, u0 );
-}
-#endif
-#endif
-
-#if defined(HAVE_SSSE3)
-#include <tmmintrin.h>
-#endif
-#if defined(HAVE_SSE4_1)
-#include <smmintrin.h>
-#endif
-#if defined(HAVE_AVX)
-#include <immintrin.h>
-#endif
-#if defined(HAVE_XOP) && !defined(_MSC_VER)
-#include <x86intrin.h>
-#endif
-
-
-
-#include "blake2b-round.h"
-
-static const uint64_t blake2b_IV[8] =
-{
- 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
- 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
- 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
- 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
-};
-
-static const uint8_t blake2b_sigma[12][16] =
-{
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
- { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
- { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
- { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
- { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
- { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
- { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
- { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
- { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }
-};
-
-
-/* Some helper functions, not necessarily useful */
-static inline int blake2b_set_lastnode( blake2b_state *S )
-{
- S->f[1] = ~0ULL;
- return 0;
-}
-
-static inline int blake2b_clear_lastnode( blake2b_state *S )
-{
- S->f[1] = 0ULL;
- return 0;
-}
-
-static inline int blake2b_set_lastblock( blake2b_state *S )
-{
- if( S->last_node ) blake2b_set_lastnode( S );
-
- S->f[0] = ~0ULL;
- return 0;
-}
-
-static inline int blake2b_clear_lastblock( blake2b_state *S )
-{
- if( S->last_node ) blake2b_clear_lastnode( S );
-
- S->f[0] = 0ULL;
- return 0;
-}
-
-
-static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
-{
-#if defined(__x86_64__) && (defined(__GNUC__) || defined(__clang__))
- // ADD/ADC chain
- __uint128_t t = ( ( __uint128_t )S->t[1] << 64 ) | S->t[0];
- t += inc;
- S->t[0] = ( uint64_t )( t >> 0 );
- S->t[1] = ( uint64_t )( t >> 64 );
-#else
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
-#endif
- return 0;
-}
-
-
-// Parameter-related functions
-static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length )
-{
- P->digest_length = digest_length;
- return 0;
-}
-
-static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout )
-{
- P->fanout = fanout;
- return 0;
-}
-
-static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth )
-{
- P->depth = depth;
- return 0;
-}
-
-static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length )
-{
- P->leaf_length = leaf_length;
- return 0;
-}
-
-static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset )
-{
- P->node_offset = node_offset;
- return 0;
-}
-
-static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth )
-{
- P->node_depth = node_depth;
- return 0;
-}
-
-static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length )
-{
- P->inner_length = inner_length;
- return 0;
-}
-
-static inline int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES] )
-{
- memcpy( P->salt, salt, BLAKE2B_SALTBYTES );
- return 0;
-}
-
-static inline int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES] )
-{
- memcpy( P->personal, personal, BLAKE2B_PERSONALBYTES );
- return 0;
-}
-
-static inline int blake2b_init0( blake2b_state *S )
-{
- memset( S, 0, sizeof( blake2b_state ) );
-
- for( int i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
-
- return 0;
-}
-
-
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2b_init( blake2b_state *S, size_t outlen );
- int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen );
- int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen );
- int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-#if defined(__cplusplus)
-}
-#endif
-
-/* init xors IV with input parameter block */
-int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
-{
- uint8_t *p, *h, *v;
- //blake2b_init0( S );
- v = ( uint8_t * )( blake2b_IV );
- h = ( uint8_t * )( S->h );
- p = ( uint8_t * )( P );
- /* IV XOR ParamBlock */
- memset( S, 0, sizeof( blake2b_state ) );
-
- for( int i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-/* Some sort of default parameter block initialization, for sequential blake2b */
-
-int blake2b_init( blake2b_state *S, size_t outlen )
-{
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- const blake2b_param P =
- {
- ( uint8_t ) outlen,
- 0,
- 1,
- 1,
- 0,
- 0,
- 0,
- 0,
- {0},
- {0},
- {0}
- };
- return blake2b_init_param( S, &P );
-}
-
-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
-{
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- if ( ( !keylen ) || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- const blake2b_param P =
- {
- ( uint8_t ) outlen,
- ( uint8_t ) keylen,
- 1,
- 1,
- 0,
- 0,
- 0,
- 0,
- {0},
- {0},
- {0}
- };
-
- if( blake2b_init_param( S, &P ) < 0 )
- return 0;
-
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2b_update( S, block, BLAKE2B_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-static inline int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
-{
- __m128i row1l, row1h;
- __m128i row2l, row2h;
- __m128i row3l, row3h;
- __m128i row4l, row4h;
- __m128i b0, b1;
- __m128i t0, t1;
-#if defined(HAVE_SSSE3) && !defined(HAVE_XOP)
- const __m128i r16 = _mm_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9 );
- const __m128i r24 = _mm_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10 );
-#endif
-#if defined(HAVE_SSE4_1)
- const __m128i m0 = LOADU( block + 00 );
- const __m128i m1 = LOADU( block + 16 );
- const __m128i m2 = LOADU( block + 32 );
- const __m128i m3 = LOADU( block + 48 );
- const __m128i m4 = LOADU( block + 64 );
- const __m128i m5 = LOADU( block + 80 );
- const __m128i m6 = LOADU( block + 96 );
- const __m128i m7 = LOADU( block + 112 );
-#else
- const uint64_t m0 = ( ( uint64_t * )block )[ 0];
- const uint64_t m1 = ( ( uint64_t * )block )[ 1];
- const uint64_t m2 = ( ( uint64_t * )block )[ 2];
- const uint64_t m3 = ( ( uint64_t * )block )[ 3];
- const uint64_t m4 = ( ( uint64_t * )block )[ 4];
- const uint64_t m5 = ( ( uint64_t * )block )[ 5];
- const uint64_t m6 = ( ( uint64_t * )block )[ 6];
- const uint64_t m7 = ( ( uint64_t * )block )[ 7];
- const uint64_t m8 = ( ( uint64_t * )block )[ 8];
- const uint64_t m9 = ( ( uint64_t * )block )[ 9];
- const uint64_t m10 = ( ( uint64_t * )block )[10];
- const uint64_t m11 = ( ( uint64_t * )block )[11];
- const uint64_t m12 = ( ( uint64_t * )block )[12];
- const uint64_t m13 = ( ( uint64_t * )block )[13];
- const uint64_t m14 = ( ( uint64_t * )block )[14];
- const uint64_t m15 = ( ( uint64_t * )block )[15];
-#endif
- row1l = LOADU( &S->h[0] );
- row1h = LOADU( &S->h[2] );
- row2l = LOADU( &S->h[4] );
- row2h = LOADU( &S->h[6] );
- row3l = LOADU( &blake2b_IV[0] );
- row3h = LOADU( &blake2b_IV[2] );
- row4l = _mm_xor_si128( LOADU( &blake2b_IV[4] ), LOADU( &S->t[0] ) );
- row4h = _mm_xor_si128( LOADU( &blake2b_IV[6] ), LOADU( &S->f[0] ) );
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
- ROUND( 10 );
- ROUND( 11 );
- row1l = _mm_xor_si128( row3l, row1l );
- row1h = _mm_xor_si128( row3h, row1h );
- STOREU( &S->h[0], _mm_xor_si128( LOADU( &S->h[0] ), row1l ) );
- STOREU( &S->h[2], _mm_xor_si128( LOADU( &S->h[2] ), row1h ) );
- row2l = _mm_xor_si128( row4l, row2l );
- row2h = _mm_xor_si128( row4h, row2h );
- STOREU( &S->h[4], _mm_xor_si128( LOADU( &S->h[4] ), row2l ) );
- STOREU( &S->h[6], _mm_xor_si128( LOADU( &S->h[6] ), row2h ) );
- return 0;
-}
-
-
-int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
-{
- while( inlen > 0 )
- {
- uint32_t left = S->buflen;
- uint32_t fill = 2 * BLAKE2B_BLOCKBYTES - left;
-
- if( inlen > fill )
- {
- memcpy( S->buf + left, in, fill ); // Fill buffer
- S->buflen += fill;
- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf ); // Compress
- memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); // Shift buffer left
- S->buflen -= BLAKE2B_BLOCKBYTES;
- in += fill;
- inlen -= fill;
- }
- else // inlen <= fill
- {
- memcpy( S->buf + left, in, inlen );
- S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
- in += inlen;
- inlen -= inlen;
- }
- }
-
- return 0;
-}
-
-
-int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
-{
- if(S->outlen != outlen) return -1;
-
- if( S->buflen > BLAKE2B_BLOCKBYTES )
- {
- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf );
- S->buflen -= BLAKE2B_BLOCKBYTES;
- memmove( S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen );
- }
-
- blake2b_increment_counter( S, S->buflen );
- blake2b_set_lastblock( S );
- memset( S->buf + S->buflen, 0, 2 * BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */
- blake2b_compress( S, S->buf );
- memcpy( out, &S->h[0], outlen );
- return 0;
-}
-
-
-int blake2b( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- blake2b_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- if( keylen )
- {
- if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2b_init( S, outlen ) < 0 ) return -1;
- }
-
- if( blake2b_update( S, ( uint8_t * )in, inlen ) < 0) return -1;
- return blake2b_final( S, out, outlen );
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2b( out, in, NULL, BLAKE2B_OUTBYTES, inlen, 0 );
-}
-#endif
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2s-load-sse2.h b/contrib/tools/python3/Modules/_blake2/impl/blake2s-load-sse2.h
deleted file mode 100644
index b24483cf931..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2s-load-sse2.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2S_LOAD_SSE2_H__
-#define __BLAKE2S_LOAD_SSE2_H__
-
-#define LOAD_MSG_0_1(buf) buf = _mm_set_epi32(m6,m4,m2,m0)
-#define LOAD_MSG_0_2(buf) buf = _mm_set_epi32(m7,m5,m3,m1)
-#define LOAD_MSG_0_3(buf) buf = _mm_set_epi32(m14,m12,m10,m8)
-#define LOAD_MSG_0_4(buf) buf = _mm_set_epi32(m15,m13,m11,m9)
-#define LOAD_MSG_1_1(buf) buf = _mm_set_epi32(m13,m9,m4,m14)
-#define LOAD_MSG_1_2(buf) buf = _mm_set_epi32(m6,m15,m8,m10)
-#define LOAD_MSG_1_3(buf) buf = _mm_set_epi32(m5,m11,m0,m1)
-#define LOAD_MSG_1_4(buf) buf = _mm_set_epi32(m3,m7,m2,m12)
-#define LOAD_MSG_2_1(buf) buf = _mm_set_epi32(m15,m5,m12,m11)
-#define LOAD_MSG_2_2(buf) buf = _mm_set_epi32(m13,m2,m0,m8)
-#define LOAD_MSG_2_3(buf) buf = _mm_set_epi32(m9,m7,m3,m10)
-#define LOAD_MSG_2_4(buf) buf = _mm_set_epi32(m4,m1,m6,m14)
-#define LOAD_MSG_3_1(buf) buf = _mm_set_epi32(m11,m13,m3,m7)
-#define LOAD_MSG_3_2(buf) buf = _mm_set_epi32(m14,m12,m1,m9)
-#define LOAD_MSG_3_3(buf) buf = _mm_set_epi32(m15,m4,m5,m2)
-#define LOAD_MSG_3_4(buf) buf = _mm_set_epi32(m8,m0,m10,m6)
-#define LOAD_MSG_4_1(buf) buf = _mm_set_epi32(m10,m2,m5,m9)
-#define LOAD_MSG_4_2(buf) buf = _mm_set_epi32(m15,m4,m7,m0)
-#define LOAD_MSG_4_3(buf) buf = _mm_set_epi32(m3,m6,m11,m14)
-#define LOAD_MSG_4_4(buf) buf = _mm_set_epi32(m13,m8,m12,m1)
-#define LOAD_MSG_5_1(buf) buf = _mm_set_epi32(m8,m0,m6,m2)
-#define LOAD_MSG_5_2(buf) buf = _mm_set_epi32(m3,m11,m10,m12)
-#define LOAD_MSG_5_3(buf) buf = _mm_set_epi32(m1,m15,m7,m4)
-#define LOAD_MSG_5_4(buf) buf = _mm_set_epi32(m9,m14,m5,m13)
-#define LOAD_MSG_6_1(buf) buf = _mm_set_epi32(m4,m14,m1,m12)
-#define LOAD_MSG_6_2(buf) buf = _mm_set_epi32(m10,m13,m15,m5)
-#define LOAD_MSG_6_3(buf) buf = _mm_set_epi32(m8,m9,m6,m0)
-#define LOAD_MSG_6_4(buf) buf = _mm_set_epi32(m11,m2,m3,m7)
-#define LOAD_MSG_7_1(buf) buf = _mm_set_epi32(m3,m12,m7,m13)
-#define LOAD_MSG_7_2(buf) buf = _mm_set_epi32(m9,m1,m14,m11)
-#define LOAD_MSG_7_3(buf) buf = _mm_set_epi32(m2,m8,m15,m5)
-#define LOAD_MSG_7_4(buf) buf = _mm_set_epi32(m10,m6,m4,m0)
-#define LOAD_MSG_8_1(buf) buf = _mm_set_epi32(m0,m11,m14,m6)
-#define LOAD_MSG_8_2(buf) buf = _mm_set_epi32(m8,m3,m9,m15)
-#define LOAD_MSG_8_3(buf) buf = _mm_set_epi32(m10,m1,m13,m12)
-#define LOAD_MSG_8_4(buf) buf = _mm_set_epi32(m5,m4,m7,m2)
-#define LOAD_MSG_9_1(buf) buf = _mm_set_epi32(m1,m7,m8,m10)
-#define LOAD_MSG_9_2(buf) buf = _mm_set_epi32(m5,m6,m4,m2)
-#define LOAD_MSG_9_3(buf) buf = _mm_set_epi32(m13,m3,m9,m15)
-#define LOAD_MSG_9_4(buf) buf = _mm_set_epi32(m0,m12,m14,m11)
-
-
-#endif
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2s-load-sse41.h b/contrib/tools/python3/Modules/_blake2/impl/blake2s-load-sse41.h
deleted file mode 100644
index 3ac12eb6f5d..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2s-load-sse41.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2S_LOAD_SSE41_H__
-#define __BLAKE2S_LOAD_SSE41_H__
-
-#define LOAD_MSG_0_1(buf) \
-buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(2,0,2,0)));
-
-#define LOAD_MSG_0_2(buf) \
-buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(3,1,3,1)));
-
-#define LOAD_MSG_0_3(buf) \
-buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(2,0,2,0)));
-
-#define LOAD_MSG_0_4(buf) \
-buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(3,1,3,1)));
-
-#define LOAD_MSG_1_1(buf) \
-t0 = _mm_blend_epi16(m1, m2, 0x0C); \
-t1 = _mm_slli_si128(m3, 4); \
-t2 = _mm_blend_epi16(t0, t1, 0xF0); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,0,3));
-
-#define LOAD_MSG_1_2(buf) \
-t0 = _mm_shuffle_epi32(m2,_MM_SHUFFLE(0,0,2,0)); \
-t1 = _mm_blend_epi16(m1,m3,0xC0); \
-t2 = _mm_blend_epi16(t0, t1, 0xF0); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1));
-
-#define LOAD_MSG_1_3(buf) \
-t0 = _mm_slli_si128(m1, 4); \
-t1 = _mm_blend_epi16(m2, t0, 0x30); \
-t2 = _mm_blend_epi16(m0, t1, 0xF0); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1));
-
-#define LOAD_MSG_1_4(buf) \
-t0 = _mm_unpackhi_epi32(m0,m1); \
-t1 = _mm_slli_si128(m3, 4); \
-t2 = _mm_blend_epi16(t0, t1, 0x0C); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1));
-
-#define LOAD_MSG_2_1(buf) \
-t0 = _mm_unpackhi_epi32(m2,m3); \
-t1 = _mm_blend_epi16(m3,m1,0x0C); \
-t2 = _mm_blend_epi16(t0, t1, 0x0F); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2));
-
-#define LOAD_MSG_2_2(buf) \
-t0 = _mm_unpacklo_epi32(m2,m0); \
-t1 = _mm_blend_epi16(t0, m0, 0xF0); \
-t2 = _mm_slli_si128(m3, 8); \
-buf = _mm_blend_epi16(t1, t2, 0xC0);
-
-#define LOAD_MSG_2_3(buf) \
-t0 = _mm_blend_epi16(m0, m2, 0x3C); \
-t1 = _mm_srli_si128(m1, 12); \
-t2 = _mm_blend_epi16(t0,t1,0x03); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,3,2));
-
-#define LOAD_MSG_2_4(buf) \
-t0 = _mm_slli_si128(m3, 4); \
-t1 = _mm_blend_epi16(m0, m1, 0x33); \
-t2 = _mm_blend_epi16(t1, t0, 0xC0); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(0,1,2,3));
-
-#define LOAD_MSG_3_1(buf) \
-t0 = _mm_unpackhi_epi32(m0,m1); \
-t1 = _mm_unpackhi_epi32(t0, m2); \
-t2 = _mm_blend_epi16(t1, m3, 0x0C); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2));
-
-#define LOAD_MSG_3_2(buf) \
-t0 = _mm_slli_si128(m2, 8); \
-t1 = _mm_blend_epi16(m3,m0,0x0C); \
-t2 = _mm_blend_epi16(t1, t0, 0xC0); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3));
-
-#define LOAD_MSG_3_3(buf) \
-t0 = _mm_blend_epi16(m0,m1,0x0F); \
-t1 = _mm_blend_epi16(t0, m3, 0xC0); \
-buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2));
-
-#define LOAD_MSG_3_4(buf) \
-t0 = _mm_unpacklo_epi32(m0,m2); \
-t1 = _mm_unpackhi_epi32(m1,m2); \
-buf = _mm_unpacklo_epi64(t1,t0);
-
-#define LOAD_MSG_4_1(buf) \
-t0 = _mm_unpacklo_epi64(m1,m2); \
-t1 = _mm_unpackhi_epi64(m0,m2); \
-t2 = _mm_blend_epi16(t0,t1,0x33); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3));
-
-#define LOAD_MSG_4_2(buf) \
-t0 = _mm_unpackhi_epi64(m1,m3); \
-t1 = _mm_unpacklo_epi64(m0,m1); \
-buf = _mm_blend_epi16(t0,t1,0x33);
-
-#define LOAD_MSG_4_3(buf) \
-t0 = _mm_unpackhi_epi64(m3,m1); \
-t1 = _mm_unpackhi_epi64(m2,m0); \
-buf = _mm_blend_epi16(t1,t0,0x33);
-
-#define LOAD_MSG_4_4(buf) \
-t0 = _mm_blend_epi16(m0,m2,0x03); \
-t1 = _mm_slli_si128(t0, 8); \
-t2 = _mm_blend_epi16(t1,m3,0x0F); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,0,3));
-
-#define LOAD_MSG_5_1(buf) \
-t0 = _mm_unpackhi_epi32(m0,m1); \
-t1 = _mm_unpacklo_epi32(m0,m2); \
-buf = _mm_unpacklo_epi64(t0,t1);
-
-#define LOAD_MSG_5_2(buf) \
-t0 = _mm_srli_si128(m2, 4); \
-t1 = _mm_blend_epi16(m0,m3,0x03); \
-buf = _mm_blend_epi16(t1,t0,0x3C);
-
-#define LOAD_MSG_5_3(buf) \
-t0 = _mm_blend_epi16(m1,m0,0x0C); \
-t1 = _mm_srli_si128(m3, 4); \
-t2 = _mm_blend_epi16(t0,t1,0x30); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,3,0));
-
-#define LOAD_MSG_5_4(buf) \
-t0 = _mm_unpacklo_epi64(m1,m2); \
-t1= _mm_shuffle_epi32(m3, _MM_SHUFFLE(0,2,0,1)); \
-buf = _mm_blend_epi16(t0,t1,0x33);
-
-#define LOAD_MSG_6_1(buf) \
-t0 = _mm_slli_si128(m1, 12); \
-t1 = _mm_blend_epi16(m0,m3,0x33); \
-buf = _mm_blend_epi16(t1,t0,0xC0);
-
-#define LOAD_MSG_6_2(buf) \
-t0 = _mm_blend_epi16(m3,m2,0x30); \
-t1 = _mm_srli_si128(m1, 4); \
-t2 = _mm_blend_epi16(t0,t1,0x03); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,3,0));
-
-#define LOAD_MSG_6_3(buf) \
-t0 = _mm_unpacklo_epi64(m0,m2); \
-t1 = _mm_srli_si128(m1, 4); \
-buf = _mm_shuffle_epi32(_mm_blend_epi16(t0,t1,0x0C), _MM_SHUFFLE(2,3,1,0));
-
-#define LOAD_MSG_6_4(buf) \
-t0 = _mm_unpackhi_epi32(m1,m2); \
-t1 = _mm_unpackhi_epi64(m0,t0); \
-buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2));
-
-#define LOAD_MSG_7_1(buf) \
-t0 = _mm_unpackhi_epi32(m0,m1); \
-t1 = _mm_blend_epi16(t0,m3,0x0F); \
-buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(2,0,3,1));
-
-#define LOAD_MSG_7_2(buf) \
-t0 = _mm_blend_epi16(m2,m3,0x30); \
-t1 = _mm_srli_si128(m0,4); \
-t2 = _mm_blend_epi16(t0,t1,0x03); \
-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,2,3));
-
-#define LOAD_MSG_7_3(buf) \
-t0 = _mm_unpackhi_epi64(m0,m3); \
-t1 = _mm_unpacklo_epi64(m1,m2); \
-t2 = _mm_blend_epi16(t0,t1,0x3C); \
-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,2,3,1));
-
-#define LOAD_MSG_7_4(buf) \
-t0 = _mm_unpacklo_epi32(m0,m1); \
-t1 = _mm_unpackhi_epi32(m1,m2); \
-buf = _mm_unpacklo_epi64(t0,t1);
-
-#define LOAD_MSG_8_1(buf) \
-t0 = _mm_unpackhi_epi32(m1,m3); \
-t1 = _mm_unpacklo_epi64(t0,m0); \
-t2 = _mm_blend_epi16(t1,m2,0xC0); \
-buf = _mm_shufflehi_epi16(t2,_MM_SHUFFLE(1,0,3,2));
-
-#define LOAD_MSG_8_2(buf) \
-t0 = _mm_unpackhi_epi32(m0,m3); \
-t1 = _mm_blend_epi16(m2,t0,0xF0); \
-buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(0,2,1,3));
-
-#define LOAD_MSG_8_3(buf) \
-t0 = _mm_blend_epi16(m2,m0,0x0C); \
-t1 = _mm_slli_si128(t0,4); \
-buf = _mm_blend_epi16(t1,m3,0x0F);
-
-#define LOAD_MSG_8_4(buf) \
-t0 = _mm_blend_epi16(m1,m0,0x30); \
-buf = _mm_shuffle_epi32(t0,_MM_SHUFFLE(1,0,3,2));
-
-#define LOAD_MSG_9_1(buf) \
-t0 = _mm_blend_epi16(m0,m2,0x03); \
-t1 = _mm_blend_epi16(m1,m2,0x30); \
-t2 = _mm_blend_epi16(t1,t0,0x0F); \
-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(1,3,0,2));
-
-#define LOAD_MSG_9_2(buf) \
-t0 = _mm_slli_si128(m0,4); \
-t1 = _mm_blend_epi16(m1,t0,0xC0); \
-buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(1,2,0,3));
-
-#define LOAD_MSG_9_3(buf) \
-t0 = _mm_unpackhi_epi32(m0,m3); \
-t1 = _mm_unpacklo_epi32(m2,m3); \
-t2 = _mm_unpackhi_epi64(t0,t1); \
-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(3,0,2,1));
-
-#define LOAD_MSG_9_4(buf) \
-t0 = _mm_blend_epi16(m3,m2,0xC0); \
-t1 = _mm_unpacklo_epi32(m0,m3); \
-t2 = _mm_blend_epi16(t0,t1,0x0F); \
-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,1,2,3));
-
-#endif
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2s-load-xop.h b/contrib/tools/python3/Modules/_blake2/impl/blake2s-load-xop.h
deleted file mode 100644
index 14d9e7f7640..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2s-load-xop.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2S_LOAD_XOP_H__
-#define __BLAKE2S_LOAD_XOP_H__
-
-#define TOB(x) ((x)*4*0x01010101 + 0x03020100) // ..or not TOB
-
-/* Basic VPPERM emulation, for testing purposes */
-/*static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel)
-{
- const __m128i sixteen = _mm_set1_epi8(16);
- const __m128i t0 = _mm_shuffle_epi8(src1, sel);
- const __m128i s1 = _mm_shuffle_epi8(src2, _mm_sub_epi8(sel, sixteen));
- const __m128i mask = _mm_or_si128(_mm_cmpeq_epi8(sel, sixteen),
- _mm_cmpgt_epi8(sel, sixteen)); // (>=16) = 0xff : 00
- return _mm_blendv_epi8(t0, s1, mask);
-}*/
-
-#define LOAD_MSG_0_1(buf) \
-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) );
-
-#define LOAD_MSG_0_2(buf) \
-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) );
-
-#define LOAD_MSG_0_3(buf) \
-buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) );
-
-#define LOAD_MSG_0_4(buf) \
-buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) );
-
-#define LOAD_MSG_1_1(buf) \
-t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(5),TOB(0),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) );
-
-#define LOAD_MSG_1_2(buf) \
-t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(2),TOB(0),TOB(4),TOB(6)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_1_3(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(0),TOB(0),TOB(1)) ); \
-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_1_4(buf) \
-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(7),TOB(2),TOB(0)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) );
-
-#define LOAD_MSG_2_1(buf) \
-t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(1),TOB(0),TOB(7)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(4),TOB(0)) );
-
-#define LOAD_MSG_2_2(buf) \
-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(2),TOB(0),TOB(4)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_2_3(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(7),TOB(3),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) );
-
-#define LOAD_MSG_2_4(buf) \
-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(1),TOB(6),TOB(0)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) );
-
-#define LOAD_MSG_3_1(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(3),TOB(7)) ); \
-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_3_2(buf) \
-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(1),TOB(5)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_3_3(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(5),TOB(2)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_3_4(buf) \
-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \
-buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(6),TOB(0)) );
-
-#define LOAD_MSG_4_1(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(5),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(5)) );
-
-#define LOAD_MSG_4_2(buf) \
-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(7),TOB(0)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_4_3(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(6),TOB(0),TOB(0)) ); \
-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) );
-
-#define LOAD_MSG_4_4(buf) \
-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(4),TOB(0),TOB(1)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(4),TOB(0)) );
-
-#define LOAD_MSG_5_1(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(2)) ); \
-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_5_2(buf) \
-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(6),TOB(0)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) );
-
-#define LOAD_MSG_5_3(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(0),TOB(7),TOB(4)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_5_4(buf) \
-t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(5),TOB(0),TOB(1),TOB(0)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(5)) );
-
-#define LOAD_MSG_6_1(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(0),TOB(1),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(4)) );
-
-#define LOAD_MSG_6_2(buf) \
-t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(6),TOB(0),TOB(0),TOB(1)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(7),TOB(0)) );
-
-#define LOAD_MSG_6_3(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(5),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_6_4(buf) \
-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(3),TOB(7)) ); \
-buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_7_1(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(0),TOB(7),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(5)) );
-
-#define LOAD_MSG_7_2(buf) \
-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(5),TOB(1),TOB(0),TOB(7)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) );
-
-#define LOAD_MSG_7_3(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(2),TOB(0),TOB(0),TOB(5)) ); \
-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) );
-
-#define LOAD_MSG_7_4(buf) \
-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(6),TOB(4),TOB(0)) ); \
-buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(0)) );
-
-#define LOAD_MSG_8_1(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \
-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) );
-
-#define LOAD_MSG_8_2(buf) \
-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(4),TOB(3),TOB(5),TOB(0)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(7)) );
-
-#define LOAD_MSG_8_3(buf) \
-t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(6),TOB(1),TOB(0),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(5),TOB(4)) ); \
-
-#define LOAD_MSG_8_4(buf) \
-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(4),TOB(7),TOB(2)) );
-
-#define LOAD_MSG_9_1(buf) \
-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(7),TOB(0),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(4),TOB(6)) );
-
-#define LOAD_MSG_9_2(buf) \
-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(6),TOB(4),TOB(2)) );
-
-#define LOAD_MSG_9_3(buf) \
-t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(3),TOB(5),TOB(0)) ); \
-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(7)) );
-
-#define LOAD_MSG_9_4(buf) \
-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(7)) ); \
-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(6),TOB(0)) );
-
-#endif
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2s-ref.c b/contrib/tools/python3/Modules/_blake2/impl/blake2s-ref.c
deleted file mode 100644
index ab86cc1b34e..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2s-ref.c
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-
-#include <stdint.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-static const uint32_t blake2s_IV[8] =
-{
- 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
- 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
-};
-
-static const uint8_t blake2s_sigma[10][16] =
-{
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
- { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
- { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
- { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
- { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
- { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
- { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
- { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
- { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
-};
-
-static inline int blake2s_set_lastnode( blake2s_state *S )
-{
- S->f[1] = ~0U;
- return 0;
-}
-
-static inline int blake2s_clear_lastnode( blake2s_state *S )
-{
- S->f[1] = 0U;
- return 0;
-}
-
-/* Some helper functions, not necessarily useful */
-static inline int blake2s_set_lastblock( blake2s_state *S )
-{
- if( S->last_node ) blake2s_set_lastnode( S );
-
- S->f[0] = ~0U;
- return 0;
-}
-
-static inline int blake2s_clear_lastblock( blake2s_state *S )
-{
- if( S->last_node ) blake2s_clear_lastnode( S );
-
- S->f[0] = 0U;
- return 0;
-}
-
-static inline int blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
- return 0;
-}
-
-// Parameter-related functions
-static inline int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t digest_length )
-{
- P->digest_length = digest_length;
- return 0;
-}
-
-static inline int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout )
-{
- P->fanout = fanout;
- return 0;
-}
-
-static inline int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth )
-{
- P->depth = depth;
- return 0;
-}
-
-static inline int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t leaf_length )
-{
- store32( &P->leaf_length, leaf_length );
- return 0;
-}
-
-static inline int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t node_offset )
-{
- store48( P->node_offset, node_offset );
- return 0;
-}
-
-static inline int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth )
-{
- P->node_depth = node_depth;
- return 0;
-}
-
-static inline int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t inner_length )
-{
- P->inner_length = inner_length;
- return 0;
-}
-
-static inline int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES] )
-{
- memcpy( P->salt, salt, BLAKE2S_SALTBYTES );
- return 0;
-}
-
-static inline int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES] )
-{
- memcpy( P->personal, personal, BLAKE2S_PERSONALBYTES );
- return 0;
-}
-
-static inline int blake2s_init0( blake2s_state *S )
-{
- memset( S, 0, sizeof( blake2s_state ) );
-
- for( int i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
-
- return 0;
-}
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2s_init( blake2s_state *S, size_t outlen );
- int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-#if defined(__cplusplus)
-}
-#endif
-
-/* init2 xors IV with input parameter block */
-int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
-{
- blake2s_init0( S );
- uint32_t *p = ( uint32_t * )( P );
-
- /* IV XOR ParamBlock */
- for( size_t i = 0; i < 8; ++i )
- S->h[i] ^= load32( &p[i] );
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-// Sequential blake2s initialization
-int blake2s_init( blake2s_state *S, size_t outlen )
-{
- blake2s_param P[1];
-
- /* Move interval verification here? */
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- P->digest_length = ( uint8_t) outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store48( &P->node_offset, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- // memset(P->reserved, 0, sizeof(P->reserved) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2s_init_param( S, P );
-}
-
-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2s_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- if ( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- P->digest_length = ( uint8_t ) outlen;
- P->key_length = ( uint8_t ) keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store48( &P->node_offset, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- // memset(P->reserved, 0, sizeof(P->reserved) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2s_init_param( S, P ) < 0 ) return -1;
-
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2s_update( S, block, BLAKE2S_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-static int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] )
-{
- uint32_t m[16];
- uint32_t v[16];
-
- for( size_t i = 0; i < 16; ++i )
- m[i] = load32( block + i * sizeof( m[i] ) );
-
- for( size_t i = 0; i < 8; ++i )
- v[i] = S->h[i];
-
- v[ 8] = blake2s_IV[0];
- v[ 9] = blake2s_IV[1];
- v[10] = blake2s_IV[2];
- v[11] = blake2s_IV[3];
- v[12] = S->t[0] ^ blake2s_IV[4];
- v[13] = S->t[1] ^ blake2s_IV[5];
- v[14] = S->f[0] ^ blake2s_IV[6];
- v[15] = S->f[1] ^ blake2s_IV[7];
-#define G(r,i,a,b,c,d) \
- do { \
- a = a + b + m[blake2s_sigma[r][2*i+0]]; \
- d = rotr32(d ^ a, 16); \
- c = c + d; \
- b = rotr32(b ^ c, 12); \
- a = a + b + m[blake2s_sigma[r][2*i+1]]; \
- d = rotr32(d ^ a, 8); \
- c = c + d; \
- b = rotr32(b ^ c, 7); \
- } while(0)
-#define ROUND(r) \
- do { \
- G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \
- G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \
- G(r,2,v[ 2],v[ 6],v[10],v[14]); \
- G(r,3,v[ 3],v[ 7],v[11],v[15]); \
- G(r,4,v[ 0],v[ 5],v[10],v[15]); \
- G(r,5,v[ 1],v[ 6],v[11],v[12]); \
- G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \
- G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \
- } while(0)
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
-
- for( size_t i = 0; i < 8; ++i )
- S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
-
-#undef G
-#undef ROUND
- return 0;
-}
-
-
-int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
-{
- while( inlen > 0 )
- {
- uint32_t left = S->buflen;
- uint32_t fill = 2 * BLAKE2S_BLOCKBYTES - left;
-
- if( inlen > fill )
- {
- memcpy( S->buf + left, in, fill ); // Fill buffer
- S->buflen += fill;
- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf ); // Compress
- memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left
- S->buflen -= BLAKE2S_BLOCKBYTES;
- in += fill;
- inlen -= fill;
- }
- else // inlen <= fill
- {
- memcpy( S->buf + left, in, inlen );
- S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
- in += inlen;
- inlen -= inlen;
- }
- }
-
- return 0;
-}
-
-int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2S_OUTBYTES];
- size_t i;
-
- if(S->outlen != outlen) return -1;
-
- if( S->buflen > BLAKE2S_BLOCKBYTES )
- {
- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf );
- S->buflen -= BLAKE2S_BLOCKBYTES;
- memmove( S->buf, S->buf + BLAKE2S_BLOCKBYTES, S->buflen );
- }
-
- blake2s_increment_counter( S, ( uint32_t )S->buflen );
- blake2s_set_lastblock( S );
- memset( S->buf + S->buflen, 0, 2 * BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
- blake2s_compress( S, S->buf );
-
- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, outlen );
- return 0;
-}
-
-int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- blake2s_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2s_init( S, outlen ) < 0 ) return -1;
- }
-
- if( blake2s_update( S, ( uint8_t * )in, inlen ) < 0) return -1;
- return blake2s_final( S, out, outlen );
-}
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2s-round.h b/contrib/tools/python3/Modules/_blake2/impl/blake2s-round.h
deleted file mode 100644
index 3af4be35bee..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2s-round.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-#pragma once
-#ifndef __BLAKE2S_ROUND_H__
-#define __BLAKE2S_ROUND_H__
-
-#define LOAD(p) _mm_load_si128( (__m128i *)(p) )
-#define STORE(p,r) _mm_store_si128((__m128i *)(p), r)
-
-#define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
-#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r)
-
-#define TOF(reg) _mm_castsi128_ps((reg))
-#define TOI(reg) _mm_castps_si128((reg))
-
-#define LIKELY(x) __builtin_expect((x),1)
-
-
-/* Microarchitecture-specific macros */
-#ifndef HAVE_XOP
-#ifdef HAVE_SSSE3
-#define _mm_roti_epi32(r, c) ( \
- (8==-(c)) ? _mm_shuffle_epi8(r,r8) \
- : (16==-(c)) ? _mm_shuffle_epi8(r,r16) \
- : _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) )) )
-#else
-#define _mm_roti_epi32(r, c) _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) ))
-#endif
-#else
-/* ... */
-#endif
-
-
-#define G1(row1,row2,row3,row4,buf) \
- row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \
- row4 = _mm_xor_si128( row4, row1 ); \
- row4 = _mm_roti_epi32(row4, -16); \
- row3 = _mm_add_epi32( row3, row4 ); \
- row2 = _mm_xor_si128( row2, row3 ); \
- row2 = _mm_roti_epi32(row2, -12);
-
-#define G2(row1,row2,row3,row4,buf) \
- row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \
- row4 = _mm_xor_si128( row4, row1 ); \
- row4 = _mm_roti_epi32(row4, -8); \
- row3 = _mm_add_epi32( row3, row4 ); \
- row2 = _mm_xor_si128( row2, row3 ); \
- row2 = _mm_roti_epi32(row2, -7);
-
-#define DIAGONALIZE(row1,row2,row3,row4) \
- row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(2,1,0,3) ); \
- row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \
- row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(0,3,2,1) );
-
-#define UNDIAGONALIZE(row1,row2,row3,row4) \
- row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(0,3,2,1) ); \
- row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \
- row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(2,1,0,3) );
-
-#if defined(HAVE_XOP)
-#include "blake2s-load-xop.h"
-#elif defined(HAVE_SSE4_1)
-#include "blake2s-load-sse41.h"
-#else
-#include "blake2s-load-sse2.h"
-#endif
-
-#define ROUND(r) \
- LOAD_MSG_ ##r ##_1(buf1); \
- G1(row1,row2,row3,row4,buf1); \
- LOAD_MSG_ ##r ##_2(buf2); \
- G2(row1,row2,row3,row4,buf2); \
- DIAGONALIZE(row1,row2,row3,row4); \
- LOAD_MSG_ ##r ##_3(buf3); \
- G1(row1,row2,row3,row4,buf3); \
- LOAD_MSG_ ##r ##_4(buf4); \
- G2(row1,row2,row3,row4,buf4); \
- UNDIAGONALIZE(row1,row2,row3,row4); \
-
-#endif
-
diff --git a/contrib/tools/python3/Modules/_blake2/impl/blake2s.c b/contrib/tools/python3/Modules/_blake2/impl/blake2s.c
deleted file mode 100644
index e7f63fd274f..00000000000
--- a/contrib/tools/python3/Modules/_blake2/impl/blake2s.c
+++ /dev/null
@@ -1,415 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Written in 2012 by Samuel Neves <[email protected]>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-
-#include <stdint.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#include "blake2-config.h"
-
-#if defined(_MSC_VER)
-#include <intrin.h>
-#endif
-
-#if defined(HAVE_SSE2)
-#include <emmintrin.h>
-// MSVC only defines _mm_set_epi64x for x86_64...
-#if defined(_MSC_VER) && !defined(_M_X64) && !defined(__clang__)
-static inline __m128i _mm_set_epi64x( const uint64_t u1, const uint64_t u0 )
-{
- return _mm_set_epi32( u1 >> 32, u1, u0 >> 32, u0 );
-}
-#endif
-#endif
-
-
-#if defined(HAVE_SSSE3)
-#include <tmmintrin.h>
-#endif
-#if defined(HAVE_SSE4_1)
-#include <smmintrin.h>
-#endif
-#if defined(HAVE_AVX)
-#include <immintrin.h>
-#endif
-#if defined(HAVE_XOP) && !defined(_MSC_VER)
-#include <x86intrin.h>
-#endif
-
-#include "blake2s-round.h"
-
-static const uint32_t blake2s_IV[8] =
-{
- 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
- 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
-};
-
-static const uint8_t blake2s_sigma[10][16] =
-{
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
- { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
- { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
- { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
- { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
- { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
- { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
- { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
- { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
-};
-
-
-/* Some helper functions, not necessarily useful */
-static inline int blake2s_set_lastnode( blake2s_state *S )
-{
- S->f[1] = ~0U;
- return 0;
-}
-
-static inline int blake2s_clear_lastnode( blake2s_state *S )
-{
- S->f[1] = 0U;
- return 0;
-}
-
-static inline int blake2s_set_lastblock( blake2s_state *S )
-{
- if( S->last_node ) blake2s_set_lastnode( S );
-
- S->f[0] = ~0U;
- return 0;
-}
-
-static inline int blake2s_clear_lastblock( blake2s_state *S )
-{
- if( S->last_node ) blake2s_clear_lastnode( S );
-
- S->f[0] = 0U;
- return 0;
-}
-
-static inline int blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
-{
- uint64_t t = ( ( uint64_t )S->t[1] << 32 ) | S->t[0];
- t += inc;
- S->t[0] = ( uint32_t )( t >> 0 );
- S->t[1] = ( uint32_t )( t >> 32 );
- return 0;
-}
-
-
-// Parameter-related functions
-static inline int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t digest_length )
-{
- P->digest_length = digest_length;
- return 0;
-}
-
-static inline int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout )
-{
- P->fanout = fanout;
- return 0;
-}
-
-static inline int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth )
-{
- P->depth = depth;
- return 0;
-}
-
-static inline int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t leaf_length )
-{
- P->leaf_length = leaf_length;
- return 0;
-}
-
-static inline int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t node_offset )
-{
- store48( P->node_offset, node_offset );
- return 0;
-}
-
-static inline int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth )
-{
- P->node_depth = node_depth;
- return 0;
-}
-
-static inline int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t inner_length )
-{
- P->inner_length = inner_length;
- return 0;
-}
-
-static inline int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES] )
-{
- memcpy( P->salt, salt, BLAKE2S_SALTBYTES );
- return 0;
-}
-
-static inline int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES] )
-{
- memcpy( P->personal, personal, BLAKE2S_PERSONALBYTES );
- return 0;
-}
-
-static inline int blake2s_init0( blake2s_state *S )
-{
- memset( S, 0, sizeof( blake2s_state ) );
-
- for( int i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
-
- return 0;
-}
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
- int blake2s_init( blake2s_state *S, size_t outlen );
- int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen );
- int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen );
- int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen );
-#if defined(__cplusplus)
-}
-#endif
-
-
-/* init2 xors IV with input parameter block */
-int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
-{
- uint8_t *p, *h, *v;
- //blake2s_init0( S );
- v = ( uint8_t * )( blake2s_IV );
- h = ( uint8_t * )( S->h );
- p = ( uint8_t * )( P );
- /* IV XOR ParamBlock */
- memset( S, 0, sizeof( blake2s_state ) );
-
- for( int i = 0; i < BLAKE2S_OUTBYTES; ++i ) h[i] = v[i] ^ p[i];
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-/* Some sort of default parameter block initialization, for sequential blake2s */
-int blake2s_init( blake2s_state *S, size_t outlen )
-{
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- const blake2s_param P =
- {
- outlen,
- 0,
- 1,
- 1,
- 0,
- {0},
- 0,
- 0,
- {0},
- {0}
- };
- return blake2s_init_param( S, &P );
-}
-
-
-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
-{
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- if ( ( !key ) || ( !keylen ) || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- const blake2s_param P =
- {
- outlen,
- keylen,
- 1,
- 1,
- 0,
- {0},
- 0,
- 0,
- {0},
- {0}
- };
-
- if( blake2s_init_param( S, &P ) < 0 )
- return -1;
-
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2s_update( S, block, BLAKE2S_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-static inline int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] )
-{
- __m128i row1, row2, row3, row4;
- __m128i buf1, buf2, buf3, buf4;
-#if defined(HAVE_SSE4_1)
- __m128i t0, t1;
-#if !defined(HAVE_XOP)
- __m128i t2;
-#endif
-#endif
- __m128i ff0, ff1;
-#if defined(HAVE_SSSE3) && !defined(HAVE_XOP)
- const __m128i r8 = _mm_set_epi8( 12, 15, 14, 13, 8, 11, 10, 9, 4, 7, 6, 5, 0, 3, 2, 1 );
- const __m128i r16 = _mm_set_epi8( 13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2 );
-#endif
-#if defined(HAVE_SSE4_1)
- const __m128i m0 = LOADU( block + 00 );
- const __m128i m1 = LOADU( block + 16 );
- const __m128i m2 = LOADU( block + 32 );
- const __m128i m3 = LOADU( block + 48 );
-#else
- const uint32_t m0 = ( ( uint32_t * )block )[ 0];
- const uint32_t m1 = ( ( uint32_t * )block )[ 1];
- const uint32_t m2 = ( ( uint32_t * )block )[ 2];
- const uint32_t m3 = ( ( uint32_t * )block )[ 3];
- const uint32_t m4 = ( ( uint32_t * )block )[ 4];
- const uint32_t m5 = ( ( uint32_t * )block )[ 5];
- const uint32_t m6 = ( ( uint32_t * )block )[ 6];
- const uint32_t m7 = ( ( uint32_t * )block )[ 7];
- const uint32_t m8 = ( ( uint32_t * )block )[ 8];
- const uint32_t m9 = ( ( uint32_t * )block )[ 9];
- const uint32_t m10 = ( ( uint32_t * )block )[10];
- const uint32_t m11 = ( ( uint32_t * )block )[11];
- const uint32_t m12 = ( ( uint32_t * )block )[12];
- const uint32_t m13 = ( ( uint32_t * )block )[13];
- const uint32_t m14 = ( ( uint32_t * )block )[14];
- const uint32_t m15 = ( ( uint32_t * )block )[15];
-#endif
- row1 = ff0 = LOADU( &S->h[0] );
- row2 = ff1 = LOADU( &S->h[4] );
- row3 = _mm_setr_epi32( 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A );
- row4 = _mm_xor_si128( _mm_setr_epi32( 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19 ), LOADU( &S->t[0] ) );
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
- STOREU( &S->h[0], _mm_xor_si128( ff0, _mm_xor_si128( row1, row3 ) ) );
- STOREU( &S->h[4], _mm_xor_si128( ff1, _mm_xor_si128( row2, row4 ) ) );
- return 0;
-}
-
-
-int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
-{
- while( inlen > 0 )
- {
- size_t left = S->buflen;
- size_t fill = 2 * BLAKE2S_BLOCKBYTES - left;
-
- if( inlen > fill )
- {
- memcpy( S->buf + left, in, fill ); // Fill buffer
- S->buflen += fill;
- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf ); // Compress
- memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left
- S->buflen -= BLAKE2S_BLOCKBYTES;
- in += fill;
- inlen -= fill;
- }
- else /* inlen <= fill */
- {
- memcpy( S->buf + left, in, inlen );
- S->buflen += inlen; // Be lazy, do not compress
- in += inlen;
- inlen -= inlen;
- }
- }
-
- return 0;
-}
-
-
-int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2S_OUTBYTES];
-
- if(outlen != S->outlen ) return -1;
-
- if( S->buflen > BLAKE2S_BLOCKBYTES )
- {
- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf );
- S->buflen -= BLAKE2S_BLOCKBYTES;
- memmove( S->buf, S->buf + BLAKE2S_BLOCKBYTES, S->buflen );
- }
-
- blake2s_increment_counter( S, ( uint32_t )S->buflen );
- blake2s_set_lastblock( S );
- memset( S->buf + S->buflen, 0, 2 * BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
- blake2s_compress( S, S->buf );
-
- for( int i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, outlen );
- return 0;
-}
-
-int blake2s( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
-{
- blake2s_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2s_init( S, outlen ) < 0 ) return -1;
- }
-
- if( blake2s_update( S, ( uint8_t * )in, inlen ) < 0) return -1;
- return blake2s_final( S, out, outlen );
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2s( out, in, NULL, BLAKE2S_OUTBYTES, (size_t)inlen, 0 );
-}
-#endif
-