diff --git a/include/libdap-crypto-python.h b/include/libdap-crypto-python.h
index 56e467198afedee8ad7485cd0a0fb081290040db..7a2bf372bed65e9109031df833986f42472aeee8 100644
--- a/include/libdap-crypto-python.h
+++ b/include/libdap-crypto-python.h
@@ -5,19 +5,23 @@
 #include "dap_common.h"
 #include "wrapping_base58.h"
 #include "wrapping_base64.h"
-
-
+#include "wrapping_dap_enc_key.h"
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#undef LOG_TAG
 #define LOG_TAG "libdap-python-crypto"
 
 static PyObject *dap_crypto_init(PyObject *self, PyObject *args);
 
 static PyObject *dap_crypto_deinit();
 
+static PyObject *dap_log_it_debug(PyObject *self, PyObject *args);
+
+static PyObject *dap_log_it_info(PyObject *self, PyObject *args);
+
 static PyMethodDef DapCryptoMethods[] = {
         {"init", dap_crypto_init, METH_VARARGS, "Initialization of the DAP (Deus Applicaions Prototypes) crypto library"},
         {"deinit", dap_crypto_deinit, METH_NOARGS, "Deinitialization of the DAP (Deus Applicaions Prototypes) crypto library"},
@@ -25,6 +29,10 @@ static PyMethodDef DapCryptoMethods[] = {
         {"decodeBase58", dap_decode_base58_py, METH_VARARGS, "Dencrypts information using the base58 algorithm from the DAP crypto library"},
         {"encodeBase64", dap_encode_base64_py, METH_VARARGS, "Encrypts information using the base64 algorithm from the DAP crypto library"},
         {"decodeBase64", dap_decode_base64_py, METH_VARARGS, "Dencrypts information using the base64 algorithm from the DAP crypto library"},
+        {"logItDebug", dap_log_it_debug, METH_VARARGS, ""},
+        {"logItInfo", dap_log_it_info, METH_VARARGS, ""},
+        {"newKey", dap_enc_key_new_py, METH_VARARGS, "The function creates a new key, and returns it with PyObject."},
+        {"delKey", dap_enc_key_delete_py, METH_VARARGS, ""},
         {NULL, NULL, 0, NULL}
 };
 
diff --git a/include/wrapping_dap_enc_key.h b/include/wrapping_dap_enc_key.h
index 160e745dc90a736ebbb00ada7063c5ad41ad083e..6bc80252b2940fcd41812d6ed9606e2769ed9483 100644
--- a/include/wrapping_dap_enc_key.h
+++ b/include/wrapping_dap_enc_key.h
@@ -1,6 +1,12 @@
 #include "dap_enc_key.h"
+#include "Python.h"
+#include "dap_common.h"
+#include "key_list.h"
 
-dap_enc_key_t *dapEncKey;
+#undef LOG_TAG
+#define LOG_TAG "wrapping-dap-enc-key"
+
+key_list_t *keys;
 
 PyObject* dap_enc_key_get_enc_size_py(PyObject *self, PyObject *args);//dap_enc_key_t * a_key, const size_t buf_in_size); -> size_t
 PyObject* dap_enc_key_get_dec_size_py(PyObject *self, PyObject *args);//dap_enc_key_t * a_key, const size_t buf_in_size); -> size_t
@@ -26,4 +32,8 @@ PyObject *dap_enc_gen_key_public_size_py(PyObject *self, PyObject *args);//dap_e
 PyObject *dap_enc_gen_key_public_py(PyObject *self, PyObject *args);//dap_enc_key_t *a_key, void * a_output); ->int
 
 PyObject *dap_enc_key_signature_delete_py(PyObject *self, PyObject *args);//dap_enc_key_type_t a_key_type, uint8_t *a_sig_buf);     ->void
-PyObject *dap_enc_key_delete_py(PyObject *self, PyObject *args);//dap_enc_key_t * a_key);       ->void
\ No newline at end of file
+PyObject *dap_enc_key_delete_py(PyObject *self, PyObject *args);//dap_enc_key_t * a_key);       ->void
+
+//void init_wrapping_dap_enc_key();
+
+//dap_enc_key_t* get_dap_enc_key(PyBytesObject *object);
\ No newline at end of file
diff --git a/src/libdap-crypto-python.c b/src/libdap-crypto-python.c
index a5810511b28d2e1364394448643f024bf251904d..51d93c61f1ae722445b4ede36a4c77ee52e2c174 100644
--- a/src/libdap-crypto-python.c
+++ b/src/libdap-crypto-python.c
@@ -1,6 +1,7 @@
 #include "libdap-crypto-python.h"
 
 static PyObject* dap_crypto_init(PyObject *self, PyObject *args){
+    dap_common_init("libdap-crypto","libdap-crypto-python-module.txt");
     if(dap_enc_init()!=0){
         log_it(L_CRITICAL,"Can't init encryption module");
         return PyLong_FromLong(-1);
@@ -9,15 +10,32 @@ static PyObject* dap_crypto_init(PyObject *self, PyObject *args){
         log_it(L_CRITICAL,"Can't init encryption key module");
         return PyLong_FromLong(-2);
     }
+    keys = key_list_init();
     return PyLong_FromLong(0);
 }
 
 static PyObject* dap_crypto_deinit(){
     dap_enc_key_deinit();
     dap_enc_deinit();
+    key_list_free(keys);
     return PyLong_FromLong(0);
 }
 
+/*      Information                         */
+static PyObject *dap_log_it_debug(PyObject *self, PyObject *args){
+    const char *data;
+    if (!PyArg_ParseTuple(args,"s", &data)){
+        return NULL;
+    }
+    log_it(L_DEBUG, data);
+    return PyLong_FromLong(0);
+}
+
+static PyObject *dap_log_it_info(PyObject *self, PyObject *args){
+    return PyLong_FromLong(0);
+}
+/*==========================================*/
+
 PyMODINIT_FUNC PyInit_libdap_crypto_python_module(void){
     return PyModule_Create(&dapcryptomodule);
 }
diff --git a/src/wrapping_dap_enc_key.c b/src/wrapping_dap_enc_key.c
index eb03a0dc1fd517a19cc3d12ad13b54761c6e3617..929a59b856e447781a2c7b9239fbf4660982570c 100644
--- a/src/wrapping_dap_enc_key.c
+++ b/src/wrapping_dap_enc_key.c
@@ -1,3 +1,5 @@
+#include "wrapping_dap_enc_key.h"
+
 PyObject* dap_enc_key_get_enc_size_py(PyObject *self, PyObject *args){
     return PyLong_FromLong(0);
 }
@@ -14,11 +16,12 @@ PyObject* dap_enc_key_new_py(PyObject *self, PyObject *args){
     if (type_key < 0 || type_key > 16){
         return PyLong_FromLong(-1);
     }
-    dap_enc_key_t *key = dap_enc_key_new(type_key);
-    return PyLong_FromLong(0);
+    dap_enc_key_t *new_key = dap_enc_key_new(type_key);
+    uint8_t res = key_list_add_element(keys, new_key);
+    return  PyLong_FromLong(res);
 }
 
-// default gen key
+/// default gen key
 PyObject *dap_enc_key_new_generate_py(PyObject *self, PyObject *args){
     return PyLong_FromLong(0);
 }
@@ -44,6 +47,18 @@ PyObject *dap_enc_gen_key_public_py(PyObject *self, PyObject *args){
 PyObject *dap_enc_key_signature_delete_py(PyObject *self, PyObject *args){
     return PyLong_FromLong(0);
 }
+
 PyObject *dap_enc_key_delete_py(PyObject *self, PyObject *args){
+    //PyObject *obj;
+    uint8_t key_id;
+    if (!PyArg_ParseTuple(args, "h", &key_id)){
+        return NULL;
+    }
+    dap_enc_key_t *key = key_list_get_key(keys, key_id);
+    if (key == NULL) {
+        return NULL;
+    }
+    key_list_del_element(keys, key_id);
+    dap_enc_key_delete(key);
     return PyLong_FromLong(0);
 }
\ No newline at end of file