diff options
author | Guillaume Horel | 2020-12-18 16:01:55 -0500 |
---|---|---|
committer | Guillaume Horel | 2020-12-18 16:01:55 -0500 |
commit | 3ec603e17b0856f0d5388c27bbf4584d5d0817b1 (patch) | |
tree | acb81467d74b629cfc2c2d8fcf50377371424818 | |
parent | 6f70a921b7a6e19826f28ffce8eb871cb7817f16 (diff) | |
download | aur-3ec603e17b0856f0d5388c27bbf4584d5d0817b1.tar.gz |
remove no longer needed patch
-rw-r--r-- | cmake.patch | 539 |
1 files changed, 0 insertions, 539 deletions
diff --git a/cmake.patch b/cmake.patch deleted file mode 100644 index 83b75d1cf988..000000000000 --- a/cmake.patch +++ /dev/null @@ -1,539 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index cb1bbba..bb04bce 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -15,7 +15,7 @@ find_package( PythonInterp 2.7 REQUIRED ) - option(ENABLE_SHARED "Build shared library." ON) - option(ENABLE_STATIC "Build static library." ON) - option(ENABLE_STRICT "Build with strict compile options." YES) --option(ENABLE_TESTS "Enable compilation of tests." YES) -+option(ENABLE_TESTS "Enable compilation of tests." OFF) - option(GENERATED_SOURCE_PATH "Where the generated source code is stored, default in the building tree" OFF) - - if (GENERATED_SOURCE_PATH) -@@ -23,7 +23,7 @@ if (GENERATED_SOURCE_PATH) - else() - set(GSOURCE_PATH ${PROJECT_BINARY_DIR}/src/GENERATED) - endif() --message("Generated source code will be in ${GSOURCE_PATH}") -+message("Generated source code in ${GSOURCE_PATH}") - - if(NOT CPACK_GENERATOR AND NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}) -@@ -49,40 +49,41 @@ if(MSVC) - set(STRICT_OPTIONS_CPP "${STRICT_OPTIONS_CPP} /WX") - endif() - else() -- set(STRICT_OPTIONS_CXX "${STRICT_OPTIONS_CXX} -std=c++11 -O2 ") -- set(STRICT_OPTIONS_CPP "${STRICT_OPTIONS_CPP} -Wall -Wuninitialized -Wno-deprecated-declarations -Wno-missing-field-initializers ") -- set(STRICT_OPTIONS_C "${STRICT_OPTIONS_C} -std=c99 -O2 -Wstrict-prototypes -Wno-error=strict-prototypes -ffunction-sections -fdata-sections -fvisibility=hidden -fomit-frame-pointer ") -+ set(STRICT_OPTIONS_CXX "${STRICT_OPTIONS_CXX} -std=c++11 -O2") -+ set(STRICT_OPTIONS_CPP "${STRICT_OPTIONS_CPP} -Wall -Wuninitialized -Wno-deprecated-declarations -Wno-missing-field-initializers") -+ set(STRICT_OPTIONS_C "${STRICT_OPTIONS_C} -std=c99 -O2 -Wstrict-prototypes -Wno-error=strict-prototypes -fvisibility=hidden") - if(CMAKE_C_COMPILER_ID STREQUAL "Clang") -- set(STRICT_OPTIONS_CPP "${STRICT_OPTIONS_CPP} -Qunused-arguments -Wno-array-bounds ") -+ set(STRICT_OPTIONS_CPP "${STRICT_OPTIONS_CPP} -Qunused-arguments -Wno-array-bounds") - endif() - if(APPLE) -- set(STRICT_OPTIONS_CPP "${STRICT_OPTIONS_CPP} -Wno-error=unknown-warning-option -Qunused-arguments -Wno-tautological-compare -Wno-unused-function -Wno-array-bounds ") -- set(STRICT_OPTIONS_CXX "${STRICT_OPTIONS_CXX} -stdlib=libc++ ") -+ set(STRICT_OPTIONS_CPP "${STRICT_OPTIONS_CPP} -Wno-error=unknown-warning-option -Qunused-arguments -Wno-tautological-compare -Wno-unused-function -Wno-array-bounds") - endif() - if(ENABLE_STRICT) -- set(STRICT_OPTIONS_CPP "${STRICT_OPTIONS_CPP} -Werror -Wextra -Wno-unused-parameter -fno-strict-aliasing ") -+ set(STRICT_OPTIONS_CPP "${STRICT_OPTIONS_CPP} -Werror -Wextra -Wno-unused-parameter -fno-strict-aliasing") - endif() - endif() - --set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${STRICT_OPTIONS_C}") --set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STRICT_OPTIONS_CXX}") -+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${STRICT_OPTIONS_C} ${STRICT_OPTIONS_CPP}") -+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STRICT_OPTIONS_CXX} ${STRICT_OPTIONS_CPP}") - - add_subdirectory(src) - - if(ENABLE_TESTS) -- enable_testing() -+ enable_testing() - add_subdirectory(test) - endif() - - include(CMakePackageConfigHelpers) -+set(ConfigPackageLocation share/decaf/cmake) - export(EXPORT ${EXPORT_TARGETS_NAME}Targets - FILE "${CMAKE_CURRENT_BINARY_DIR}/DecafTargets.cmake" - ) --configure_file(cmake/DecafConfig.cmake.in -+configure_package_config_file(cmake/DecafConfig.cmake.in - "${CMAKE_CURRENT_BINARY_DIR}/DecafConfig.cmake" -- @ONLY -+ INSTALL_DESTINATION ${ConfigPackageLocation} -+ NO_SET_AND_CHECK_MACRO - ) --set(ConfigPackageLocation share/decaf/cmake) -+ - install(EXPORT ${EXPORT_TARGETS_NAME}Targets - FILE DecafTargets.cmake - DESTINATION ${ConfigPackageLocation} -@@ -109,7 +110,7 @@ set(CPACK_PACKAGE_NAME "decaf") - set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) - set(CPACK_SOURCE_GENERATOR "TGZ") - set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") --set(CPACK_SOURCE_IGNORE_FILES -+set(CPACK_SOURCE_IGnore_FILES - "^${CMAKE_BINARY_DIR}" - "/\\\\..+" - ) -diff --git a/cmake/DecafConfig.cmake.in b/cmake/DecafConfig.cmake.in -index 05837f9..730dbbd 100644 ---- a/cmake/DecafConfig.cmake.in -+++ b/cmake/DecafConfig.cmake.in -@@ -28,23 +28,25 @@ - # DECAF_LIBRARIES - The libraries needed to use decaf - # DECAF_CPPFLAGS - The compilation flags needed to use decaf - -+@PACKAGE_INIT@ -+ -+include("${CMAKE_CURRENT_LIST_DIR}/DecafTargets.cmake") - - if(@ENABLE_SHARED@) - set(DECAF_TARGETNAME decaf) -- set(DECAF_LIBRARIES ${DECAF_TARGETNAME}) - else() - set(DECAF_TARGETNAME decaf-static) -- if(TARGET ${DECAF_TARGETNAME}) -- get_target_property(DECAF_LIBRARIES ${DECAF_TARGETNAME} LOCATION) -- get_target_property(DECAF_LINK_LIBRARIES ${DECAF_TARGETNAME} INTERFACE_LINK_LIBRARIES) -- if(DECAF_LINK_LIBRARIES) -- list(APPEND DECAF_LIBRARIES ${DECAF_LINK_LIBRARIES}) -- endif() -- endif() - endif() -+ - get_target_property(DECAF_INCLUDE_DIRS ${DECAF_TARGETNAME} INTERFACE_INCLUDE_DIRECTORIES) --list(INSERT DECAF_INCLUDE_DIRS 0 "@CMAKE_INSTALL_FULL_INCLUDEDIR@") --list(REMOVE_DUPLICATES DECAF_INCLUDE_DIRS) -+ -+if(TARGET ${DECAF_TARGETNAME}) -+ get_target_property(DECAF_LIBRARIES ${DECAF_TARGETNAME} LOCATION) -+ get_target_property(DECAF_LINK_LIBRARIES ${DECAF_TARGETNAME} INTERFACE_LINK_LIBRARIES) -+ if(DECAF_LINK_LIBRARIES) -+ list(APPEND DECAF_LIBRARIES ${DECAF_LINK_LIBRARIES}) -+ endif() -+endif() - - set(DECAF_CPPFLAGS @DECAF_CPPFLAGS@) - set(DECAF_FOUND 1) -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 0294fc6..aaf54fd 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -5,6 +5,10 @@ - # - ############################################################################ - -+if(MSVC)
-+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
-+endif() -+ - set(DECAF_HEADER_FILES - include/constant_time.h - include/field.h -@@ -79,17 +83,14 @@ if(ENABLE_STATIC) - add_library(decaf-static STATIC ${DECAF_HEADER_FILES} ${DECAF_SOURCE_FILES_C} ${DECAF_SOURCE_FILES_CXX} $<TARGET_OBJECTS:p25519> $<TARGET_OBJECTS:p448> $<TARGET_OBJECTS:CURVE25519> $<TARGET_OBJECTS:CURVE448>) - add_dependencies(decaf-static generatedCode) - set_target_properties(decaf-static PROPERTIES OUTPUT_NAME decaf) -- target_include_directories(decaf-static PUBLIC) -+ target_include_directories(decaf-static INTERFACE $<INSTALL_INTERFACE:include/decaf>) - target_link_libraries(decaf-static INTERFACE) - endif() - if(ENABLE_SHARED) - add_library(decaf SHARED ${DECAF_HEADER_FILES} ${DECAF_SOURCE_FILES_C} ${DECAF_SOURCE_FILES_CXX} $<TARGET_OBJECTS:p25519> $<TARGET_OBJECTS:p448> $<TARGET_OBJECTS:CURVE25519> $<TARGET_OBJECTS:CURVE448>) - add_dependencies(decaf generatedCode) -- if(APPLE) -- set_target_properties(decaf PROPERTIES LINK_FLAGS "-stdlib=libc++") -- endif() - set_target_properties(decaf PROPERTIES VERSION ${DECAF_SO_VERSION}) -- target_include_directories(decaf PUBLIC) -+ target_include_directories(decaf INTERFACE $<INSTALL_INTERFACE:include/decaf>) - target_link_libraries(decaf PRIVATE) - if(MSVC) - if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") -diff --git a/src/include/word.h b/src/include/word.h -index de22693..d10a804 100644 ---- a/src/include/word.h -+++ b/src/include/word.h -@@ -50,12 +50,16 @@ extern int posix_memalign(void **, size_t, size_t); - - #if (ARCH_WORD_BITS == 64) - typedef uint64_t word_t, mask_t; -+ static const mask_t DECAF_MASK_ALL_SET = (mask_t)0xFFFFFFFFFFFFFFFF; -+ static const mask_t DECAF_MASK_ALL_UNSET = (mask_t)0x0; - typedef __uint128_t dword_t; - typedef int32_t hsword_t; - typedef int64_t sword_t; - typedef __int128_t dsword_t; - #elif (ARCH_WORD_BITS == 32) - typedef uint32_t word_t, mask_t; -+ static const mask_t DECAF_MASK_ALL_SET = (mask_t)0xFFFFFFFF; -+ static const mask_t DECAF_MASK_ALL_UNSET = (mask_t)0x0; - typedef uint64_t dword_t; - typedef int16_t hsword_t; - typedef int32_t sword_t; -diff --git a/src/p25519/arch_32/f_impl.c b/src/p25519/arch_32/f_impl.c -index edaa62a..ea11658 100644 ---- a/src/p25519/arch_32/f_impl.c -+++ b/src/p25519/arch_32/f_impl.c -@@ -48,7 +48,7 @@ void gf_mul (gf_s *__restrict__ cs, const gf as, const gf bs) { - accum >>= 26; - - assert(accum < masko); -- c[1] += accum; -+ c[1] += (uint32_t)accum; - } - - void gf_mulw_unsigned (gf_s *__restrict__ cs, const gf as, uint32_t b) { -@@ -80,7 +80,7 @@ void gf_mulw_unsigned (gf_s *__restrict__ cs, const gf as, uint32_t b) { - accum >>= 26; - - assert(accum < masko); -- c[1] += accum; -+ c[1] += (uint32_t)accum; - } - - void gf_sqr (gf_s *__restrict__ cs, const gf as) { -diff --git a/src/p448/arch_32/f_impl.c b/src/p448/arch_32/f_impl.c -index 0770bd9..b525668 100644 ---- a/src/p448/arch_32/f_impl.c -+++ b/src/p448/arch_32/f_impl.c -@@ -88,11 +88,11 @@ void gf_mulw_unsigned (gf_s *__restrict__ cs, const gf as, uint32_t b) { - - accum0 += accum8 + c[8]; - c[8] = accum0 & mask; -- c[9] += accum0 >> 28; -+ c[9] += (uint32_t)(accum0 >> 28); - - accum8 += c[0]; - c[0] = accum8 & mask; -- c[1] += accum8 >> 28; -+ c[1] += (uint32_t)(accum8 >> 28); - } - - void gf_sqr (gf_s *__restrict__ cs, const gf as) { -diff --git a/src/per_curve/decaf.tmpl.c b/src/per_curve/decaf.tmpl.c -index 5714e4d..5852314 100644 ---- a/src/per_curve/decaf.tmpl.c -+++ b/src/per_curve/decaf.tmpl.c -@@ -1273,7 +1273,7 @@ decaf_error_t decaf_x$(gf_shortname) ( - else if (t == X_PRIVATE_BITS-1) sb = -1; - - mask_t k_t = (sb>>(t%8)) & 1; -- k_t = -k_t; /* set to all 0s or all 1s */ -+ k_t = k_t?DECAF_MASK_ALL_SET:DECAF_MASK_ALL_UNSET; /* set to all 0s or all 1s */ - - swap ^= k_t; - gf_cond_swap(x2,x3,swap); -@@ -1394,7 +1394,7 @@ void decaf_x$(gf_shortname)_derive_public_key ( - memcpy(scalar2,scalar,sizeof(scalar2)); - scalar2[0] &= -(uint8_t)COFACTOR; - -- scalar2[X_PRIVATE_BYTES-1] &= ~(-1u<<((X_PRIVATE_BITS+7)%8)); -+ scalar2[X_PRIVATE_BYTES-1] &= ~(0xFF<<((X_PRIVATE_BITS+7)%8)); - scalar2[X_PRIVATE_BYTES-1] |= 1<<((X_PRIVATE_BITS+7)%8); - - scalar_t the_scalar; -diff --git a/src/per_curve/elligator.tmpl.c b/src/per_curve/elligator.tmpl.c -index 12d97b8..51ef140 100644 ---- a/src/per_curve/elligator.tmpl.c -+++ b/src/per_curve/elligator.tmpl.c -@@ -109,13 +109,13 @@ API_NS(invert_elligator_nonuniform) ( - uint32_t hint_ - ) { - mask_t hint = hint_; -- mask_t sgn_s = -(hint & 1), -- sgn_altx = -(hint>>1 & 1), -- sgn_r0 = -(hint>>2 & 1), -+ mask_t sgn_s = ((hint & 1)?DECAF_MASK_ALL_SET:DECAF_MASK_ALL_UNSET), -+ sgn_altx = ((hint>>1 & 1)?DECAF_MASK_ALL_SET:DECAF_MASK_ALL_UNSET), -+ sgn_r0 = ((hint>>2 & 1)?DECAF_MASK_ALL_SET:DECAF_MASK_ALL_UNSET), - /* FUTURE MAGIC: eventually if there's a curve which needs sgn_ed_T but not sgn_r0, - * change this mask extraction. - */ -- sgn_ed_T = -(hint>>3 & 1); -+ sgn_ed_T = ((hint>>3 & 1)?DECAF_MASK_ALL_SET:DECAF_MASK_ALL_UNSET); - gf a,b,c; - API_NS(deisogenize)(a,b,c,p,sgn_s,sgn_altx,sgn_ed_T); - -diff --git a/src/per_curve/scalar.tmpl.c b/src/per_curve/scalar.tmpl.c -index 64af132..aa20a3c 100644 ---- a/src/per_curve/scalar.tmpl.c -+++ b/src/per_curve/scalar.tmpl.c -@@ -37,15 +37,15 @@ static DECAF_NOINLINE void sc_subx( - unsigned int i; - for (i=0; i<SCALAR_LIMBS; i++) { - chain = (chain + accum[i]) - sub->limb[i]; -- out->limb[i] = chain; -+ out->limb[i] = (decaf_word_t)chain; - chain >>= WBITS; - } -- decaf_word_t borrow = chain+extra; /* = 0 or -1 */ -+ decaf_word_t borrow = (decaf_word_t)chain+extra; /* = 0 or -1 */ - - chain = 0; - for (i=0; i<SCALAR_LIMBS; i++) { - chain = (chain + out->limb[i]) + (p->limb[i] & borrow); -- out->limb[i] = chain; -+ out->limb[i] = (decaf_word_t)chain; - chain >>= WBITS; - } - } -@@ -66,22 +66,22 @@ static DECAF_NOINLINE void sc_montmul ( - decaf_dword_t chain = 0; - for (j=0; j<SCALAR_LIMBS; j++) { - chain += ((decaf_dword_t)mand)*mier[j] + accum[j]; -- accum[j] = chain; -+ accum[j] = (decaf_word_t)chain; - chain >>= WBITS; - } -- accum[j] = chain; -+ accum[j] = (decaf_word_t)chain; - - mand = accum[0] * MONTGOMERY_FACTOR; - chain = 0; - mier = sc_p->limb; - for (j=0; j<SCALAR_LIMBS; j++) { - chain += (decaf_dword_t)mand*mier[j] + accum[j]; -- if (j) accum[j-1] = chain; -+ if (j) accum[j-1] = (decaf_word_t)chain; - chain >>= WBITS; - } - chain += accum[j]; - chain += hi_carry; -- accum[j-1] = chain; -+ accum[j-1] = (decaf_word_t)chain; - hi_carry = chain >> WBITS; - } - -@@ -179,10 +179,10 @@ void API_NS(scalar_add) ( - unsigned int i; - for (i=0; i<SCALAR_LIMBS; i++) { - chain = (chain + a->limb[i]) + b->limb[i]; -- out->limb[i] = chain; -+ out->limb[i] = (decaf_word_t)chain; - chain >>= WBITS; - } -- sc_subx(out, out->limb, sc_p, sc_p, chain); -+ sc_subx(out, out->limb, sc_p, sc_p, (decaf_word_t)chain); - } - - void -@@ -193,7 +193,7 @@ API_NS(scalar_set_unsigned) ( - memset(out,0,sizeof(scalar_t)); - unsigned int i = 0; - for (; i<sizeof(uint64_t)/sizeof(decaf_word_t); i++) { -- out->limb[i] = w; -+ out->limb[i] = (decaf_word_t)w; - #if DECAF_WORD_BITS < 64 - w >>= 8*sizeof(decaf_word_t); - #endif -@@ -242,7 +242,7 @@ decaf_error_t API_NS(scalar_decode)( - - API_NS(scalar_mul)(s,s,API_NS(scalar_one)); /* ham-handed reduce */ - -- return decaf_succeed_if(~word_is_zero(accum)); -+ return decaf_succeed_if(~word_is_zero((decaf_word_t)accum)); - } - - void API_NS(scalar_destroy) ( -@@ -314,17 +314,17 @@ void API_NS(scalar_halve) ( - scalar_t out, - const scalar_t a - ) { -- decaf_word_t mask = -(a->limb[0] & 1); -+ decaf_word_t mask = (a->limb[0] & 1)?DECAF_WORD_ALL_SET:DECAF_WORD_ALL_UNSET; - decaf_dword_t chain = 0; - unsigned int i; - for (i=0; i<SCALAR_LIMBS; i++) { - chain = (chain + a->limb[i]) + (sc_p->limb[i] & mask); -- out->limb[i] = chain; -+ out->limb[i] = (decaf_word_t)chain; - chain >>= DECAF_WORD_BITS; - } - for (i=0; i<SCALAR_LIMBS-1; i++) { - out->limb[i] = out->limb[i]>>1 | out->limb[i+1]<<(WBITS-1); - } -- out->limb[i] = out->limb[i]>>1 | chain<<(WBITS-1); -+ out->limb[i] = out->limb[i]>>1 | (decaf_word_t)(chain<<(WBITS-1)); - } - -diff --git a/src/per_field/f_generic.tmpl.c b/src/per_field/f_generic.tmpl.c -index 563a6e5..ad3fc10 100644 ---- a/src/per_field/f_generic.tmpl.c -+++ b/src/per_field/f_generic.tmpl.c -@@ -26,7 +26,7 @@ void gf_serialize (uint8_t serial[SER_BYTES], const gf x) { - fill += LIMB_PLACE_VALUE(LIMBPERM(j)); - j++; - } -- serial[i] = buffer; -+ serial[i] = (uint8_t)buffer; - fill -= 8; - buffer >>= 8; - } -@@ -37,7 +37,7 @@ mask_t gf_lobit(const gf x) { - gf y; - gf_copy(y,x); - gf_strong_reduce(y); -- return -(y->limb[0]&1); -+ return (y->limb[0]&1)?DECAF_MASK_ALL_SET:DECAF_MASK_ALL_UNSET; - } - - /** Deserialize from wire format; return -1 on success and 0 on failure. */ -@@ -46,19 +46,19 @@ mask_t gf_deserialize (gf x, const uint8_t serial[SER_BYTES], uint8_t hi_nmask) - dword_t buffer = 0; - dsword_t scarry = 0; - UNROLL for (unsigned int i=0; i<NLIMBS; i++) { -- UNROLL while (fill < LIMB_PLACE_VALUE(LIMBPERM(i)) && j < SER_BYTES) { -+ UNROLL while (fill < (unsigned int)(LIMB_PLACE_VALUE(LIMBPERM(i))) && j < SER_BYTES) { - uint8_t sj = serial[j]; - if (j==SER_BYTES-1) sj &= ~hi_nmask; - buffer |= ((dword_t)sj) << fill; - fill += 8; - j++; - } -- x->limb[LIMBPERM(i)] = (i<NLIMBS-1) ? buffer & LIMB_MASK(LIMBPERM(i)) : buffer; -+ x->limb[LIMBPERM(i)] = (word_t)((i<NLIMBS-1) ? buffer & LIMB_MASK(LIMBPERM(i)) : buffer); - fill -= LIMB_PLACE_VALUE(LIMBPERM(i)); - buffer >>= LIMB_PLACE_VALUE(LIMBPERM(i)); - scarry = (scarry + x->limb[LIMBPERM(i)] - MODULUS->limb[LIMBPERM(i)]) >> (8*sizeof(word_t)); - } -- return word_is_zero(buffer) & ~word_is_zero(scarry); -+ return word_is_zero((word_t)buffer) & ~word_is_zero((word_t)scarry); - } - - /** Reduce to canonical form. */ -@@ -82,7 +82,7 @@ void gf_strong_reduce (gf a) { - */ - assert(word_is_zero(scarry) | word_is_zero(scarry+1)); - -- word_t scarry_0 = scarry; -+ word_t scarry_0 = (word_t)scarry; - dword_t carry = 0; - - /* add it back */ -diff --git a/src/public_include/decaf/common.h b/src/public_include/decaf/common.h -index 2493525..0abde45 100644 ---- a/src/public_include/decaf/common.h -+++ b/src/public_include/decaf/common.h -@@ -93,8 +93,25 @@ typedef int64_t decaf_dsword_t; /**< Signed double-word size for internal co - #error "Only supporting DECAF_WORD_BITS = 32 or 64 for now" - #endif - --/** DECAF_TRUE = -1 so that DECAF_TRUE & x = x */ --static const decaf_bool_t DECAF_TRUE = -(decaf_bool_t)1; -+/* MSCV compiler doesn't like the trick to have -1 assigned to an unsigned int to -+ * set it to all ones, so do it openly */ -+#if DECAF_WORD_BITS == 64 -+/** DECAF_TRUE = all ones so that DECAF_TRUE & x = x */ -+static const decaf_bool_t DECAF_TRUE = (decaf_bool_t)0xFFFFFFFFFFFFFFFF; -+/** DECAF_WORD_ALL_SET : all ones */ -+static const decaf_word_t DECAF_WORD_ALL_SET = (decaf_word_t)0xFFFFFFFFFFFFFFFF; -+/** DECAF_WORD_ALL_UNSET : all zeros */ -+static const decaf_word_t DECAF_WORD_ALL_UNSET = (decaf_word_t)0x0; -+#elif DECAF_WORD_BITS == 32 /**< The number of bits in a word */ -+/** DECAF_TRUE = all ones so that DECAF_TRUE & x = x */ -+static const decaf_bool_t DECAF_TRUE = (decaf_bool_t)0xFFFFFFFF; -+/** DECAF_WORD_ALL_SET : all ones */ -+static const decaf_word_t DECAF_WORD_ALL_SET = (decaf_word_t)0xFFFFFFFF; -+/** DECAF_WORD_ALL_UNSET : all zeros */ -+static const decaf_word_t DECAF_WORD_ALL_UNSET = (decaf_word_t)0x0; -+#else -+#error "Only supporting DECAF_WORD_BITS = 32 or 64 for now" -+#endif - - /** DECAF_FALSE = 0 so that DECAF_FALSE & x = 0 */ - static const decaf_bool_t DECAF_FALSE = 0; -diff --git a/src/sha512.c b/src/sha512.c -index 1cdd5ce..364bc3e 100644 ---- a/src/sha512.c -+++ b/src/sha512.c -@@ -243,11 +243,11 @@ void decaf_sha512_final(decaf_sha512_ctx_t ctx, uint8_t *out, size_t length) { - } - - for (size_t i=0; i<8; i++) -- ctx->block[120 + i] = bp >> (56 - 8*i); -+ ctx->block[120 + i] = (uint8_t)(bp >> (56 - 8*i)); - hashblock(ctx); - - for (size_t i=0; i<length; i++) { -- out[i] = ctx->state[i/8] >> (56 - 8*(i%8)); -+ out[i] = (uint8_t)(ctx->state[i/8] >> (56 - 8*(i%8))); - } - - decaf_sha512_init(ctx); -diff --git a/src/shake.c b/src/shake.c -index 7cd3a5b..5205c86 100644 ---- a/src/shake.c -+++ b/src/shake.c -@@ -98,7 +98,7 @@ decaf_error_t decaf_sha3_update ( - uint8_t* state = &decaf_sponge->state->b[decaf_sponge->params->position]; - if (cando > len) { - for (i = 0; i < len; i += 1) state[i] ^= in[i]; -- decaf_sponge->params->position += len; -+ decaf_sponge->params->position += (uint8_t)len; - break; - } else { - for (i = 0; i < cando; i += 1) state[i] ^= in[i]; -@@ -121,7 +121,7 @@ decaf_error_t decaf_sha3_output ( - - if (decaf_sponge->params->max_out != 0xFF) { - if (decaf_sponge->params->remaining >= len) { -- decaf_sponge->params->remaining -= len; -+ decaf_sponge->params->remaining -= (uint8_t)len; - } else { - decaf_sponge->params->remaining = 0; - ret = DECAF_FAILURE; -@@ -148,7 +148,7 @@ decaf_error_t decaf_sha3_output ( - uint8_t* state = &decaf_sponge->state->b[decaf_sponge->params->position]; - if (cando > len) { - memcpy(out, state, len); -- decaf_sponge->params->position += len; -+ decaf_sponge->params->position += (uint8_t)len; - return ret; - } else { - memcpy(out, state, cando); -diff --git a/src/spongerng.c b/src/spongerng.c -index fea7702..bba336e 100644 ---- a/src/spongerng.c -+++ b/src/spongerng.c -@@ -25,6 +25,9 @@ - #if defined(_MSC_VER) - # include <io.h> - #include <BaseTsd.h> -+#define open _open -+#define read _read -+#define close _close - typedef SSIZE_T ssize_t; - #else - # include <unistd.h> -@@ -110,7 +113,7 @@ void decaf_spongerng_next ( - uint8_t lenx[8]; - size_t len1 = len; - for (unsigned i=0; i<sizeof(lenx); i++) { -- lenx[i] = len1; -+ lenx[i] = (uint8_t)len1; - len1 >>= 8; - } - decaf_sha3_update(prng->sponge,lenx,sizeof(lenx)); -diff --git a/test/shakesum.c b/test/shakesum.c -index 7d9019a..02d9397 100644 ---- a/test/shakesum.c -+++ b/test/shakesum.c -@@ -20,7 +20,7 @@ typedef SSIZE_T ssize_t; - #include <decaf/shake.h> - #include <decaf/sha512.h> - --static void usage() { -+static void usage(void) { - fprintf( - stderr, - "decaf_shakesum [shake256|shake128|sha3-224|sha3-384|sha3-512|sha512] < infile > outfile\n" |