/** \file constants.h \author michael.zohner@ec-spride.de, daniel.demmler@crisp-da.de \copyright ABY - A Framework for Efficient Mixed-protocol Secure Two-party Computation Copyright (C) 2019 ENCRYPTO Group, TU Darmstadt This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. ABY is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . \brief File containing all crypto and networking constants used throughout the source */ #ifndef _CONSTANTS_H_ #define _CONSTANTS_H_ #include "typedefs.h" #include #define BATCH //#define FIXED_KEY_AES_HASHING //#define USE_PIPELINED_AES_NI //#define SIMPLE_TRANSPOSE //activate the simple transpose, only required for benchmarking, not recommended #define AES_KEY_BITS 128 #define AES_KEY_BYTES 16 #define AES_BITS 128 #define AES_BYTES 16 #define LOG2_AES_BITS ceil_log2(AES_BITS) #define SHA1_OUT_BYTES 20 #define SHA256_OUT_BYTES 32 #define SHA512_OUT_BYTES 64 #define MAX_NUM_COMM_CHANNELS 256 #define ADMIN_CHANNEL MAX_NUM_COMM_CHANNELS-1 enum field_type {P_FIELD, ECC_FIELD, FIELD_LAST}; static const seclvl ST = { 40, 80, 1024 }; static const seclvl MT = { 40, 112, 2048 }; static const seclvl LT = { 40, 128, 3072 }; static const seclvl XLT = { 40, 192, 7680 }; static const seclvl XXLT = { 40, 256, 15360 }; const uint8_t m_vFixedKeyAESSeed[AES_KEY_BYTES] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; /** \var m_vSeed \brief Static seed for various testing functionalities */ const uint8_t m_vSeed[AES_KEY_BYTES] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; inline const char* getFieldType(field_type ftype) { switch (ftype) { case P_FIELD: return "P_FIELD"; case ECC_FIELD: return "ECC_FIELD"; default: return "unknown field"; } } #endif /* _CONSTANTS_H_ */