From 5ce08d4f7680fccbcd2db42aac3e12a9942739ac Mon Sep 17 00:00:00 2001 From: Constantin Papizh <p.const@bk.ru> Date: Tue, 17 Sep 2019 11:54:56 +0300 Subject: [PATCH] Windows operability fix --- libdap-crypto.pri | 17 ++++++++++++++--- src/msrln/kex.c | 6 +++--- src/msrln/random.c | 8 ++++---- src/sha3/sha3.pri | 5 ++--- src/sig_dilithium/sig_dilithium.pri | 16 ++++++++++++++++ 5 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 src/sig_dilithium/sig_dilithium.pri diff --git a/libdap-crypto.pri b/libdap-crypto.pri index fa8dc22..6ca16ee 100755 --- a/libdap-crypto.pri +++ b/libdap-crypto.pri @@ -7,6 +7,9 @@ include (src/sha3/sha3.pri) include (src/sig_bliss/sig_bliss.pri) include (src/sig_picnic/sig_picnic.pri) include (src/sig_tesla/sig_tesla.pri) +include (src/sig_dilithium/sig_dilithium.pri) + +DEFINES += KeccakP1600timesN_excluded HEADERS += $$PWD/include/dap_enc.h \ $$PWD/include/dap_enc_base64.h \ @@ -20,7 +23,10 @@ HEADERS += $$PWD/include/dap_enc.h \ $$PWD/include/dap_enc_tesla.h \ $$PWD/include/dap_crypto_common.h \ $$PWD/include/dap_enc_base58.h \ - $$PWD/include/dap_enc_ca.h + $$PWD/include/dap_enc_dilithium.h \ + $$PWD/src/XKCP/lib/high/Keccak/FIPS202/SimpleFIPS202.h \ + $$PWD/src/XKCP/lib/high/Keccak/SP800-185/SP800-185.h \ + $$PWD/src/XKCP/lib/high/common/Phases.h SOURCES += $$PWD/src/dap_enc.c \ $$PWD/src/dap_enc_base64.c \ @@ -33,6 +39,11 @@ SOURCES += $$PWD/src/dap_enc.c \ $$PWD/src/dap_enc_bliss.c \ $$PWD/src/dap_enc_tesla.c \ $$PWD/src/dap_enc_base58.c \ - $$PWD/src/dap_enc_ca.c + $$PWD/src/dap_enc_dilithium.c \ + $$PWD/src/dap_enc_ca.c \ + $$PWD/src/XKCP/lib/high/Keccak/FIPS202/SimpleFIPS202.c \ + $$PWD/src/XKCP/lib/high/Keccak/SP800-185/SP800-185.c \ + $$PWD/src/XKCP/lib/high/Keccak/SP800-185/SP800-185.inc + -INCLUDEPATH += $$PWD/include $$PWD/../ $$PWD/src +INCLUDEPATH += $$PWD/include $$PWD/../ $$PWD/src $$PWD/src/XKCP/lib/high/Keccak/FIPS202 $$PWD/src/XKCP/lib/high/Keccak/SP800-185 $$PWD/src/XKCP/lib/high/common diff --git a/src/msrln/kex.c b/src/msrln/kex.c index 942c5ae..9cb69a3 100755 --- a/src/msrln/kex.c +++ b/src/msrln/kex.c @@ -473,15 +473,15 @@ CRYPTO_MSRLN_STATUS generate_a(uint32_t* a, const unsigned char* seed, Extendabl // shake128_absorb(state, seed, SEED_BYTES); // shake128_squeezeblocks((unsigned char *) buf, nblocks, state); - #ifdef _WIN32 + /*#ifdef _WIN32 SHAKE128_InitAbsorb( &ks, seed, SEED_BYTES ); KECCAK_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 ); - #else + #else */ Keccak_HashInitialize_SHAKE128(&ks); Keccak_HashUpdate( &ks, seed, SEED_BYTES * 8 ); Keccak_HashFinal( &ks, seed ); Keccak_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 * 8 ); - #endif + //#endif while (ctr < PARAMETER_N) { val = (buf[pos] | ((uint16_t) buf[pos + 1] << 8)) & 0x3fff; diff --git a/src/msrln/random.c b/src/msrln/random.c index e5a760c..b7b5a4c 100755 --- a/src/msrln/random.c +++ b/src/msrln/random.c @@ -1,6 +1,6 @@ #include "msrln_priv.h" -//#include "KeccakHash.h" +#include "KeccakHash.h" //#include "SimpleFIPS202.h" #define LOG_TAG "RANDOM" @@ -18,15 +18,15 @@ CRYPTO_MSRLN_STATUS MSRLN_generate_a(const unsigned char* seed, unsigned int see // shake128_absorb(state, seed, seed_nbytes); // shake128_squeezeblocks((unsigned char *) buf, nblocks, state); - #ifdef _WIN32 + /* #ifdef _WIN32 SHAKE128_InitAbsorb( &ks, seed, seed_nbytes ); KECCAK_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 ); - #else + #else */ Keccak_HashInitialize_SHAKE128(&ks); Keccak_HashUpdate( &ks, seed, seed_nbytes * 8 ); Keccak_HashFinal( &ks, seed ); Keccak_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 * 8 ); - #endif + //#endif while (ctr < array_ndigits) { val = (buf[pos] | ((uint16_t) buf[pos + 1] << 8)) & 0x3fff; diff --git a/src/sha3/sha3.pri b/src/sha3/sha3.pri index b93b260..be9685f 100755 --- a/src/sha3/sha3.pri +++ b/src/sha3/sha3.pri @@ -8,8 +8,7 @@ HEADERS += $$PWD/fips202.h \ $$PWD/KeccakSponge-common.h \ $$PWD/KeccakSpongeWidth1600.h -SOURCES += $$PWD/fips202.c \ - $$PWD/KeccakHash.c \ +SOURCES += $$PWD/KeccakHash.c \ $$PWD/KeccakP-1600-reference.c \ $$PWD/KeccakSpongeWidth1600.c - \ No newline at end of file + diff --git a/src/sig_dilithium/sig_dilithium.pri b/src/sig_dilithium/sig_dilithium.pri new file mode 100644 index 0000000..ad13a94 --- /dev/null +++ b/src/sig_dilithium/sig_dilithium.pri @@ -0,0 +1,16 @@ +HEADERS += $$PWD/dilithium_params.h \ + $$PWD/dilithium_packing.h \ + $$PWD/dilithium_poly.h \ + $$PWD/dilithium_polyvec.h \ + $$PWD/dilithium_rounding_reduce.h \ + $$PWD/dilithium_sign.h + +SOURCES += $$PWD/dilithium_params.c \ + $$PWD/dilithium_packing.c \ + $$PWD/dilithium_poly.c \ + $$PWD/dilithium_polyvec.c \ + $$PWD/dilithium_rounding_reduce.c \ + $$PWD/dilithium_sign.c + +INCLUDEPATH += $$PWD + -- GitLab