diff --git a/crypto/dap_enc_oaes.c b/crypto/dap_enc_oaes.c index a43938c23957f5d530979b233414f31dc9614380..d0a37d66dae177859a4b13cc68be846ae0561da9 100644 --- a/crypto/dap_enc_oaes.c +++ b/crypto/dap_enc_oaes.c @@ -53,18 +53,16 @@ void dap_enc_oaes_key_generate(struct dap_enc_key * a_key, const void *kex_buf, return; } - if(seed_size < OAES_BLOCK_SIZE) { - log_it(L_ERROR, "seed_size can't be less than OAES_BLOCK_SIZE"); - return; - } - OAES_RET r = oaes_key_import_data(ctx, kex_buf, key_size); if(r != OAES_RET_SUCCESS) { log_it(L_ERROR, "Error generate key"); return; } - memcpy(ctx->iv, seed, OAES_BLOCK_SIZE); + if(seed_size >= OAES_BLOCK_SIZE) + memcpy(ctx->iv, seed, OAES_BLOCK_SIZE); + else + memset(ctx->iv, 0, OAES_BLOCK_SIZE); } size_t dap_enc_oaes_calc_encode_size(const size_t size_in)