2025-09-30 16:48:13 +01:00
|
|
|
|
// Copyright (c) 2014-2018 Zano Project
|
|
|
|
|
|
// Copyright (c) 2014-2018 The Louisdor Project
|
|
|
|
|
|
// Copyright (c) 2012-2013 The Boolberry developers
|
|
|
|
|
|
// Copyright (c) 2017-2025 Lethean (https://lt.hn)
|
|
|
|
|
|
//
|
|
|
|
|
|
// Licensed under the European Union Public Licence (EUPL) version 1.2.
|
|
|
|
|
|
// You may obtain a copy of the licence at:
|
|
|
|
|
|
//
|
|
|
|
|
|
// https://joinup.ec.europa.eu/software/page/eupl/licence-eupl
|
|
|
|
|
|
//
|
|
|
|
|
|
// The EUPL is a copyleft licence that is compatible with the MIT/X11
|
|
|
|
|
|
// licence used by the original projects; the MIT terms are therefore
|
|
|
|
|
|
// considered “grandfathered” under the EUPL for this code.
|
|
|
|
|
|
//
|
|
|
|
|
|
// SPDX‑License‑Identifier: EUPL-1.2
|
|
|
|
|
|
//
|
|
|
|
|
|
|
2020-07-06 16:52:27 +02:00
|
|
|
|
/* ecrypt-machine.h */
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
* This file is included by 'ecrypt-portable.h'. It allows to override
|
|
|
|
|
|
* the default macros for specific platforms. Please carefully check
|
|
|
|
|
|
* the machine code generated by your compiler (with optimisations
|
|
|
|
|
|
* turned on) before deciding to edit this file.
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
#if (defined(ECRYPT_DEFAULT_ROT) && !defined(ECRYPT_MACHINE_ROT))
|
|
|
|
|
|
|
|
|
|
|
|
#define ECRYPT_MACHINE_ROT
|
|
|
|
|
|
|
|
|
|
|
|
#if (defined(WIN32) && defined(_MSC_VER))
|
|
|
|
|
|
|
|
|
|
|
|
#undef ROTL32
|
|
|
|
|
|
#undef ROTR32
|
|
|
|
|
|
#undef ROTL64
|
|
|
|
|
|
#undef ROTR64
|
|
|
|
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
|
|
#define ROTL32(v, n) _lrotl(v, n)
|
|
|
|
|
|
#define ROTR32(v, n) _lrotr(v, n)
|
|
|
|
|
|
#define ROTL64(v, n) _rotl64(v, n)
|
|
|
|
|
|
#define ROTR64(v, n) _rotr64(v, n)
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
#if (defined(ECRYPT_DEFAULT_SWAP) && !defined(ECRYPT_MACHINE_SWAP))
|
|
|
|
|
|
|
|
|
|
|
|
#define ECRYPT_MACHINE_SWAP
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
* If you want to overwrite the default swap macros, put it here. And so on.
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------------------------- */
|