From 86539fc5c3a7956f22d61f5ab63329e8cd7cab62 Mon Sep 17 00:00:00 2001
From: Alexey Stratulat <alexey.stratulat@demlabs.net>
Date: Fri, 26 Jul 2019 20:33:27 +0700
Subject: [PATCH] [*] Fix. A key has been added to the vrapping with keying in
 the absence of kex or seed. I need to specify only the zero dimension of
 these parameters

---
 src/wrapping_dap_enc_key.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/wrapping_dap_enc_key.c b/src/wrapping_dap_enc_key.c
index 5e608da7..359efebb 100644
--- a/src/wrapping_dap_enc_key.c
+++ b/src/wrapping_dap_enc_key.c
@@ -59,8 +59,12 @@ PyObject *dap_enc_key_new_generate_py(PyObject *self, PyObject *args){
     if (in_type_key > 16){
         return PyLong_FromLong(-1);
     }
-    void *kex_buf = PyBytes_AsString((PyObject*)in_kex_buf);
-    void *seed = PyBytes_AsString((PyObject*)in_seed);
+    void *kex_buf = NULL;
+    void *seed = NULL;
+    if (in_kex_size != 0)
+        kex_buf = PyBytes_AsString((PyObject*)in_kex_buf);
+    if (in_seed_size != 0)
+        seed = PyBytes_AsString((PyObject*)in_seed);
     dap_enc_key_t *new_key = dap_enc_key_new_generate(in_type_key, kex_buf, in_kex_size, seed, in_seed_size, in_key_size);
     uint8_t new_key_id = key_list_add_element(keys, new_key);
     return PyLong_FromLong(new_key_id);
-- 
GitLab