Skip to content
Snippets Groups Projects
Unverified Commit 3c377840 authored by Dmitriy A. Gerasimov's avatar Dmitriy A. Gerasimov Committed by GitHub
Browse files

Merge branch 'master' into master

parents 1f8bd54c 3011fd0b
No related branches found
No related tags found
1 merge request!24Support 3689
# 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
......@@ -6,18 +6,23 @@ set(CRYPTO_SRCS
dap_enc_base64.c
dap_enc_aes.c
dap_enc_newhope.c
dap_enc_msrln16.c
dap_enc_key.c
)
set(RND_SRCS
libdap/crypto/liboqs/crypto/rand/rand.c
)
set(CRYPTO_HEADERS
dap_enc.h
dap_enc_base64.h
dap_enc_aes.h
dap_enc_newhope.h
dap_enc_msrln16.h
dap_enc_key.h
)
......
......@@ -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){
......
......@@ -26,6 +26,7 @@
#include "dap_enc_aes.h"
#include "dap_enc_newhope.h"
#include "dap_enc_sidh16.h"
#include "dap_enc_msrln16.h"
#include "dap_enc_key.h"
......@@ -69,7 +70,6 @@ struct dap_enc_key_callbacks{
.key_public_raw_callback = dap_enc_newhope_key_public_raw,
.new_from_data_public_callback = dap_enc_newhope_key_new_from_data_public
},
[DAP_ENC_KEY_TYPE_SIDH_CLN16]={
.name = "SIDHCLN16",
.size_max = 64,
......@@ -79,7 +79,19 @@ struct dap_enc_key_callbacks{
.delete_callback = NULL,
.new_generate_callback = dap_enc_sidh16_key_new_generate,
.new_from_data_callback = dap_enc_sidh16_key_new_from_data
}
},
[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]);
......
......@@ -24,9 +24,15 @@
#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_RLWE_MSRLN16//а оно мне надо?
} dap_enc_data_type_t;
} dap_enc_data_type_t;
typedef enum dap_enc_key_type{ DAP_ENC_KEY_TYPE_AES, // Symmetric AES
DAP_ENC_KEY_TYPE_RLWE_BCNS15, // key exchange from the ring learning with errors problem
......@@ -74,12 +80,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;
......
#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)
{
}
#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
......@@ -9,13 +9,16 @@
#include <stddef.h>
#include <stdint.h>
//#include <oqs/rand.h>
#include <../libdap/crypto/liboqs/crypto/rand/rand.h>
#if !defined(WINDOWS)
//#include <oqs/config.h>
#include <../libdap/crypto/liboqs/config.h>
=======
//#include <oqs/rand.h> //беда с симлинками, посему так пока
#include "../crypto/rand/rand.h"
#if !defined(WINDOWS)
#include "../config.h"
//#include <oqs/config.h>
#endif
enum OQS_KEX_alg_name {
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment