makes MSan happy
Cette révision appartient à :
Parent
9b7b7277ce
révision
ced21a0c79
@ -30,7 +30,7 @@ if(MEMSAN)
|
|||||||
set(CMAKE_ARGS_MEMCHECK_LIB "-stdlib=libc++ -L${LLVM_PRJ_LIB} -lc++abi -Wl,-rpath,${LLVM_PRJ_LIB}")
|
set(CMAKE_ARGS_MEMCHECK_LIB "-stdlib=libc++ -L${LLVM_PRJ_LIB} -lc++abi -Wl,-rpath,${LLVM_PRJ_LIB}")
|
||||||
set(CMAKE_ARGS_MEMCHECK_INC "-isystem -I${LLVM_PRJ_INC} -I${LLVM_PRJ_INC}/c++/v1")
|
set(CMAKE_ARGS_MEMCHECK_INC "-isystem -I${LLVM_PRJ_INC} -I${LLVM_PRJ_INC}/c++/v1")
|
||||||
set(CMAKE_ARGS_MEMCHECK_FLAGS "-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -Wno-unused-command-line-argument")
|
set(CMAKE_ARGS_MEMCHECK_FLAGS "-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -Wno-unused-command-line-argument")
|
||||||
set(EXTRA_CXX_FLAGS "${CMAKE_ARGS_MEMCHECK_FLAGS} ${CMAKE_ARGS_MEMCHECK_LIB} ${CMAKE_ARGS_MEMCHECK_INC}")
|
set(EXTRA_CXX_FLAGS "${CMAKE_ARGS_MEMCHECK_FLAGS} ${CMAKE_ARGS_MEMCHECK_LIB} ${CMAKE_ARGS_MEMCHECK_INC} -DPQC_MEMSAN_BUILD")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
|
@ -301,6 +301,10 @@ static int randombytes_js_randombytes_nodejs(void *buf, size_t n) {
|
|||||||
#endif /* defined(__EMSCRIPTEN__) */
|
#endif /* defined(__EMSCRIPTEN__) */
|
||||||
|
|
||||||
int randombytes(uint8_t *buf, size_t n) {
|
int randombytes(uint8_t *buf, size_t n) {
|
||||||
|
#ifdef PQC_MEMSAN_BUILD
|
||||||
|
size_t i;
|
||||||
|
for (i=0; i<n; i++) buf[i]=0;
|
||||||
|
#endif
|
||||||
#if defined(__EMSCRIPTEN__)
|
#if defined(__EMSCRIPTEN__)
|
||||||
return randombytes_js_randombytes_nodejs(buf, n);
|
return randombytes_js_randombytes_nodejs(buf, n);
|
||||||
#elif defined(__linux__)
|
#elif defined(__linux__)
|
||||||
|
@ -103,7 +103,7 @@ static inline void sike_init_basis(const crypto_word_t *gen, f2elm_t XP, f2elm_t
|
|||||||
|
|
||||||
// Conversion of GF(p^2) element from Montgomery to standard representation.
|
// Conversion of GF(p^2) element from Montgomery to standard representation.
|
||||||
static inline void sike_fp2_encode(const f2elm_t x, uint8_t *enc) {
|
static inline void sike_fp2_encode(const f2elm_t x, uint8_t *enc) {
|
||||||
f2elm_t t;
|
f2elm_t t={0};
|
||||||
sike_from_fp2mont(x, t);
|
sike_from_fp2mont(x, t);
|
||||||
|
|
||||||
// convert to bytes in little endian form
|
// convert to bytes in little endian form
|
||||||
|
@ -22,7 +22,7 @@ auto cpucycle = [](benchmark::State &st, int64_t cycles) {
|
|||||||
static void BenchKyberMatK2(benchmark::State &st) {
|
static void BenchKyberMatK2(benchmark::State &st) {
|
||||||
int64_t t, total = 0;
|
int64_t t, total = 0;
|
||||||
polyvec a[KYBER_K];
|
polyvec a[KYBER_K];
|
||||||
uint8_t seed[32];
|
uint8_t seed[32] = {0};
|
||||||
for (auto _ : st) {
|
for (auto _ : st) {
|
||||||
t = benchmark::cycleclock::Now();
|
t = benchmark::cycleclock::Now();
|
||||||
PQCLEAN_KYBER512_AVX2_gen_matrix(a, seed, 0);
|
PQCLEAN_KYBER512_AVX2_gen_matrix(a, seed, 0);
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include <pqc/pqc.h>
|
#include <pqc/pqc.h>
|
||||||
|
#include <random>
|
||||||
|
|
||||||
TEST(Kyber,KEMOneOff) {
|
TEST(Kyber,KEMOneOff) {
|
||||||
|
|
||||||
@ -27,10 +28,15 @@ TEST(Kyber,KEMOneOff) {
|
|||||||
|
|
||||||
TEST(Kyber,SIGNOneOff) {
|
TEST(Kyber,SIGNOneOff) {
|
||||||
|
|
||||||
|
std::random_device rd;
|
||||||
|
std::uniform_int_distribution<uint8_t> dist(0, 0xFF);
|
||||||
|
uint8_t msg[1234] = {0};
|
||||||
|
|
||||||
for (int i=0; i<PQC_ALG_SIG_MAX; i++) {
|
for (int i=0; i<PQC_ALG_SIG_MAX; i++) {
|
||||||
const pqc_ctx_t *p = pqc_sig_alg_by_id(i);
|
const pqc_ctx_t *p = pqc_sig_alg_by_id(i);
|
||||||
|
// generate some random msg
|
||||||
|
for (auto &x : msg) {x = dist(rd);}
|
||||||
|
|
||||||
uint8_t msg[1234];
|
|
||||||
std::vector<uint8_t> sig(pqc_signature_bsz(p));
|
std::vector<uint8_t> sig(pqc_signature_bsz(p));
|
||||||
std::vector<uint8_t> sk(pqc_private_key_bsz(p));
|
std::vector<uint8_t> sk(pqc_private_key_bsz(p));
|
||||||
std::vector<uint8_t> pk(pqc_public_key_bsz(p));
|
std::vector<uint8_t> pk(pqc_public_key_bsz(p));
|
||||||
|
Chargement…
Référencer dans un nouveau ticket
Block a user