diff --git a/src/wrapping_dap_enc_key.c b/src/wrapping_dap_enc_key.c
index 5e608da77475b52ff2d4bc89cf1f4a4d39239ec0..359efebb4bb1bfda3483de3896ed3e5b6863e1f5 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);