diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 4bf974a8994c2ee687383ddb4194759098412bb5..0000000000000000000000000000000000000000 --- a/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -# Prerequisites -*.d -*.autosave -# Object files -*.o -*.ko -*.obj -*.elf - -# Linker output -*.ilk -*.map -*.exp - -# Precompiled Headers -*.gch -*.pch - -# Libraries -*.lib -*.a -*.la -*.lo - -# Shared objects (inc. Windows DLLs) -*.dll -*.so -*.so.* -*.dylib - -# Executables -*.exe -*.out -*.app -*.i*86 -*.x86_64 -*.hex - -# Debug files -*.dSYM/ -*.su -*.idb -*.pdb - -# Kernel Module Compile Results -*.mod* -*.cmd -.tmp_versions/ -modules.order -Module.symvers -Mkfile.old -dkms.conf diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 6e6834468e101f0b9e711e1af34a52d8cf32ae8d..4a890d66a1619ef0e658625d0e365bc2456f8b29 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -6,7 +6,7 @@ set(CRYPTO_SRCS dap_enc_base64.c dap_enc_aes.c dap_enc_newhope.c - + dap_enc_msrln16.c dap_enc_key.c ) @@ -15,7 +15,7 @@ set(CRYPTO_HEADERS dap_enc_base64.h dap_enc_aes.h dap_enc_newhope.h - + dap_enc_msrln16.h dap_enc_key.h ) diff --git a/crypto/dap_enc.c b/crypto/dap_enc.c index 9ac3ebd3e9c4f3e2ff1e0c4472277517e879554a..089c2ae72f3c6bfd0b590b0923d2924a8653d0d7 100644 --- a/crypto/dap_enc.c +++ b/crypto/dap_enc.c @@ -29,6 +29,7 @@ #include "dap_enc_base64.h" #include "dap_enc_key.h" #include "dap_common.h" +#include "dap_enc_msrln16.h" #define LOG_TAG "dap_enc" @@ -72,6 +73,10 @@ size_t dap_enc_code(struct dap_enc_key * key,const void * buf,const size_t buf_s case DAP_ENC_DATA_TYPE_RAW:{ proc_buf=buf_out; }break; + case DAP_ENC_DATA_TYPE_RLWE_MSRLN16:{ + //надо поÑмотреть алгоритм + } + break; } size_t ret=key->enc(key,buf,buf_size,proc_buf); if(data_type_out==DAP_ENC_DATA_TYPE_B64){ @@ -109,6 +114,10 @@ size_t dap_enc_decode(struct dap_enc_key * key,const void * buf, const size_t bu proc_buf_const=buf; proc_buf_size=buf_size; }break; + case DAP_ENC_DATA_TYPE_RLWE_MSRLN16:{ + //надобно алгоритм Ñмотреть штолЕ?! + } + break; } if(key->dec){ diff --git a/crypto/dap_enc_key.c b/crypto/dap_enc_key.c index 498cf8b17b1d4110fc4d3b2a96a3675be6b210ef..a52d115122a84fb1a16459058109ed5f5d22f7e4 100644 --- a/crypto/dap_enc_key.c +++ b/crypto/dap_enc_key.c @@ -25,6 +25,7 @@ #include "dap_enc_aes.h" #include "dap_enc_newhope.h" +#include "dap_enc_msrln16.h" #include "dap_enc_key.h" @@ -67,7 +68,20 @@ struct dap_enc_key_callbacks{ .new_from_data_callback = dap_enc_newhope_key_new_from_data, .key_public_raw_callback = dap_enc_newhope_key_public_raw, .new_from_data_public_callback = dap_enc_newhope_key_new_from_data_public - } + }, + //MSRLN16 + [DAP_ENC_KEY_TYPE_RLWE_MSRLN16] = { + .name = "MSRLN16", + .size_max = 64, + .enc = dap_enc_msrln16_encode, + .dec = dap_enc_msrln16_decode, + .new_callback = NULL, + .delete_callback =NULL, + .new_generate_callback = dap_enc_msrln16_key_new_generate, + .new_from_data_callback = dap_enc_msrln16_key_new_from_data, + .key_public_raw_callback = dap_enc_msrln16_key_public_raw, + .new_from_data_public_callback = dap_enc_msrln16_key_new_from_data_public + } }; const size_t c_callbacks_size = sizeof(s_callbacks) / sizeof(s_callbacks[0]); diff --git a/crypto/dap_enc_key.h b/crypto/dap_enc_key.h index 739d2a1dd680e3955192f565208ea4cc052578a5..36942347b68a589518cb8dc7acf7002c8b37c30c 100644 --- a/crypto/dap_enc_key.h +++ b/crypto/dap_enc_key.h @@ -24,8 +24,8 @@ #include <stddef.h> #include <time.h> typedef enum dap_enc_data_type{DAP_ENC_DATA_TYPE_RAW, - DAP_ENC_DATA_TYPE_B64, - } dap_enc_data_type_t; + DAP_ENC_DATA_TYPE_B64 +} dap_enc_data_type_t; typedef enum dap_enc_key_type{ DAP_ENC_KEY_TYPE_AES, // Symmetric AES @@ -74,12 +74,13 @@ typedef enum dap_enc_key_type{ DAP_ENC_KEY_TYPE_AES, // Symmetric AES // (Bos, Ducas, Kiltz, Lepoint, Lyubashevsky, Schwabe, Shanck, Stehlé) // Real World Crypto 2017, https://eprint.iacr.org/2017/634) // using the reference C implementation of Kyber from pq-crystals/kyber - DAP_ENC_KEY_TYPE_SIG_PICNIC // signature based on zero-knowledge proof as specified in + DAP_ENC_KEY_TYPE_SIG_PICNIC, // signature based on zero-knowledge proof as specified in // Post-Quantum Zero-Knowledge and Signatures from Symmetric-Key Primitives // (Melissa Chase and David Derler and Steven Goldfeder and Claudio Orlandi // and Sebastian Ramacher and Christian Rechberger and Daniel Slamanig and Greg Zaverucha // https://eprint.iacr.org/2017/279.pdf), using the optimized implemenation // from https://github.com/IAIK/Picnic + DAP_ENC_KEY_TYPE_FNAM2 //ХЗ ЧТО, ДОБÐВИЛ ЧТОБЫ БЫЛО И ÐРМЕÐЯ КОМПИЛЯТОРÐЕ РУГÐЛСЯ:( } dap_enc_key_type_t; struct dap_enc_key; diff --git a/crypto/dap_enc_msrln16.c b/crypto/dap_enc_msrln16.c new file mode 100644 index 0000000000000000000000000000000000000000..f9f83424654bc8855b5391b019b01f4242868eff --- /dev/null +++ b/crypto/dap_enc_msrln16.c @@ -0,0 +1,94 @@ +#include "dap_common.h" +#include "dap_enc_msrln16.h" + +#include "liboqs/kex_rlwe_msrln16/kex_rlwe_msrln16.h" + +#define LOG_TAG "dap_enc_msrln16" + +/** + * @brief dap_enc_msrln16_key_new_generate + * @param a_key + * @param a_size + */ +void dap_enc_msrln16_key_new_generate(dap_enc_key_t * a_key, size_t a_size) +{ + +} + +/** + * @brief dap_enc_msrln16_key_new_from_data + * @param a_key + * @param a_in + * @param a_in_size + */ +void dap_enc_msrln16_key_new_from_data(dap_enc_key_t * a_key, const void * a_in, size_t a_in_size) +{ + +} + +/** + * @brief dap_enc_msrln16_key_new_from_data_public + * @param a_key + * @param a_in + * @param a_in_size + */ +void dap_enc_msrln16_key_new_from_data_public(dap_enc_key_t * a_key, const void * a_in, size_t a_in_size) +{ + +} + +/** + * @brief dap_enc_msrln16_key_delete + * @param a_key + */ +void dap_enc_msrln16_key_delete(dap_enc_key_t *a_key) +{ + +} + +/** + * @brief dap_enc_msrln16_key_public_base64 + * @param a_key + * @return + */ +char* dap_enc_msrln16_key_public_base64(dap_enc_key_t *a_key) +{ + +} + +/** + * @brief dap_enc_msrln16_key_public_raw + * @param a_key + * @param a_key_public + * @return + */ +size_t dap_enc_msrln16_key_public_raw(dap_enc_key_t *a_key, void ** a_key_public) +{ + +} + +/** + * @brief dap_enc_msrln16_decode + * @param a_key + * @param a_in + * @param a_in_size + * @param a_out + * @return + */ +size_t dap_enc_msrln16_decode(dap_enc_key_t* a_key, const void * a_in, size_t a_in_size,void * a_out) +{ + +} + +/** + * @brief dap_enc_msrln16_encode + * @param a_key + * @param a_in + * @param a_in_size + * @param a_out + * @return + */ +size_t dap_enc_msrln16_encode(dap_enc_key_t* a_key, const void * a_in, size_t a_in_size,void * a_out) +{ + +} diff --git a/crypto/dap_enc_msrln16.h b/crypto/dap_enc_msrln16.h new file mode 100644 index 0000000000000000000000000000000000000000..a694505eb28311411ed92e8ec1bba9572e3356ec --- /dev/null +++ b/crypto/dap_enc_msrln16.h @@ -0,0 +1,19 @@ +#ifndef _DAP_ENC_MSRLN16_H_ +#define _DAP_ENC_MSRLN16_H_ + +#include <stddef.h> + +typedef struct dap_enc_key dap_enc_key_t; + +void dap_enc_msrln16_key_new_generate(dap_enc_key_t * a_key, size_t a_size); +void dap_enc_msrln16_key_new_from_data(dap_enc_key_t * a_key, const void * a_in, size_t a_in_size); +void dap_enc_msrln16_key_new_from_data_public(dap_enc_key_t* a_key, const void * a_in, size_t a_in_size); + +void dap_enc_msrln16_key_delete(dap_enc_key_t *a_key); + +size_t dap_enc_msrln16_key_public_raw(dap_enc_key_t *a_key, void ** a_key_public); + +size_t dap_enc_msrln16_decode(dap_enc_key_t* a_key, const void * a_in, size_t a_in_size,void * a_out); +size_t dap_enc_msrln16_encode(dap_enc_key_t* a_key, const void * a_in, size_t a_in_size,void * a_out); + +#endif diff --git a/crypto/liboqs/kex/kex.h b/crypto/liboqs/kex/kex.h index 0decdf874b9a1a815738832f183f4a0b6ab479d1..02ab71edb49357e65337560345625a965190c8b5 100644 --- a/crypto/liboqs/kex/kex.h +++ b/crypto/liboqs/kex/kex.h @@ -9,10 +9,12 @@ #include <stddef.h> #include <stdint.h> -#include <oqs/rand.h> +//#include <oqs/rand.h> //беда Ñ Ñимлинками, поÑему так пока +#include "../crypto/rand/rand.h" #if !defined(WINDOWS) -#include <oqs/config.h> +#include "../config.h" +//#include <oqs/config.h> #endif enum OQS_KEX_alg_name { diff --git a/crypto/liboqs/kex_rlwe_msrln16/kex_rlwe_msrln16.h b/crypto/liboqs/kex_rlwe_msrln16/kex_rlwe_msrln16.h index ad1ee4f5202998afed40e13de1783d237e7767ab..77613a42e99356f61fda64706ba680ebda16c53d 100644 --- a/crypto/liboqs/kex_rlwe_msrln16/kex_rlwe_msrln16.h +++ b/crypto/liboqs/kex_rlwe_msrln16/kex_rlwe_msrln16.h @@ -9,8 +9,12 @@ #include <stddef.h> #include <stdint.h> -#include <oqs/kex.h> -#include <oqs/rand.h> +#include "../kex/kex.h" +#include "../crypto/rand/rand.h" +//Ñ Ñимлинком беда какаÑ-то, поÑтому так пока + +/*#include <oqs/kex.h> +#include <oqs/rand.h>*/ OQS_KEX *OQS_KEX_rlwe_msrln16_new(OQS_RAND *rand); diff --git a/http/dap_http_client_simple.c b/http/dap_http_client_simple.c index 534d7c25845da9bf57d160bdd214faa8322ca85a..9a7c207af2e5945835071da959659c9b67d2290f 100644 --- a/http/dap_http_client_simple.c +++ b/http/dap_http_client_simple.c @@ -287,7 +287,7 @@ static void* dap_http_client_thread(void * arg) case CURLE_COULDNT_RESOLVE_HOST: l_err_code = 3 ; log_it(L_ERROR, "Couldn't resolve destination address"); break; case CURLE_OPERATION_TIMEDOUT: l_err_code = 4 ; log_it(L_ERROR, "HTTP request timeout"); break; case CURLE_URL_MALFORMAT: l_err_code = 5 ; log_it(L_ERROR, "Wrong URL format in the outgoing request"); break; - case CURLE_WEIRD_SERVER_REPLY: l_err_code = 6 ; log_it(L_WARNING, "Weird server reply"); break; + //case CURLE_WEIRD_SERVER_REPLY: l_err_code = 6 ; log_it(L_WARNING, "Weird server reply"); break; case CURLE_OK:{ l_is_ok = true; log_it(L_DEBUG, "Response size %u",l_client_internal->response_size);