/** \file typedefs.h \author michael.zohner@ec-spride.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 Typedefs Implementation */ #ifndef __TYPEDEFS_H__ #define __TYPEDEFS_H__ #include typedef int BOOL; typedef unsigned char BYTE; typedef uint64_t UGATE_T; typedef uint64_t REGISTER_SIZE; typedef struct SECURITYLEVELS { uint32_t statbits; uint32_t symbits; uint32_t ifcbits; //ECCLVL depends on CMAKE settings } seclvl; //ECCLVL depends on CMAKE settings #define GATE_T_BITS (sizeof(UGATE_T) * 8) typedef REGISTER_SIZE REGSIZE; #define LOG2_REGISTER_SIZE ceil_log2(sizeof(REGISTER_SIZE) << 3) #define FILL_BYTES AES_BYTES #define FILL_BITS AES_BITS #define RETRY_CONNECT 1000 #define CONNECT_TIMEO_MILISEC 10000 #define SNDVALS 2 #define OTEXT_BLOCK_SIZE_BITS AES_BITS #define OTEXT_BLOCK_SIZE_BYTES AES_BYTES #define VECTOR_INTERNAL_SIZE 8 #define SERVER_ID 0 #define CLIENT_ID 1 template T rem(T a, T b) { return ((a) > 0) ? (a) % (b) : (a) % (b) + ((b) > 0 ? (b) : (b) * -1); } template T sub(T a, T b, T m) { return ((b) > (a)) ? (a) + (m) - (b) : (a) - (b); } #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif #define ZERO_BYTE 0 #define MAX_BYTE 0xFF #endif //__TYPEDEFS_H__