diff --git a/include/wrapping_dap_enc_key.h b/include/wrapping_dap_enc_key.h
new file mode 100644
index 0000000000000000000000000000000000000000..160e745dc90a736ebbb00ada7063c5ad41ad083e
--- /dev/null
+++ b/include/wrapping_dap_enc_key.h
@@ -0,0 +1,29 @@
+#include "dap_enc_key.h"
+
+dap_enc_key_t *dapEncKey;
+
+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
+
+
+// allocate memory for key struct
+PyObject* dap_enc_key_new_py(PyObject *self, PyObject *args);//dap_enc_key_type_t a_key_type);     ->dap_enc_key_t*
+
+
+// default gen key
+PyObject *dap_enc_key_new_generate_py(PyObject *self, PyObject *args);//dap_enc_key_type_t key_type, const void *kex_buf,  ->dap_enc_key_t*
+                                        //size_t kex_size, const void* seed,
+                                        //size_t seed_size, size_t key_size);
+
+// update struct dap_enc_key_t after insert foreign keys
+PyObject* dap_enc_key_update_py(PyObject *self, PyObject *args);//dap_enc_key_t *a_key);            ->void
+
+// for asymmetric gen public key
+PyObject *dap_enc_gen_pub_key_from_priv_py(PyObject *self, PyObject *args);//struct dap_enc_key *a_key, void **priv_key, size_t *alice_msg_len);  ->dap_enc_key_t *
+
+
+PyObject *dap_enc_gen_key_public_size_py(PyObject *self, PyObject *args);//dap_enc_key_t *a_key); ->size_t
+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
diff --git a/src/wrapping_dap_enc_key.c b/src/wrapping_dap_enc_key.c
new file mode 100644
index 0000000000000000000000000000000000000000..eb03a0dc1fd517a19cc3d12ad13b54761c6e3617
--- /dev/null
+++ b/src/wrapping_dap_enc_key.c
@@ -0,0 +1,49 @@
+PyObject* dap_enc_key_get_enc_size_py(PyObject *self, PyObject *args){
+    return PyLong_FromLong(0);
+}
+PyObject* dap_enc_key_get_dec_size_py(PyObject *self, PyObject *args){
+    return PyLong_FromLong(0);
+}
+
+// allocate memory for key struct
+PyObject* dap_enc_key_new_py(PyObject *self, PyObject *args){
+    int type_key;
+    if(!PyArg_ParseTuple(args, "i", &type_key)){
+        return NULL;
+    }
+    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);
+}
+
+// default gen key
+PyObject *dap_enc_key_new_generate_py(PyObject *self, PyObject *args){
+    return PyLong_FromLong(0);
+}
+
+// update struct dap_enc_key_t after insert foreign keys
+PyObject* dap_enc_key_update_py(PyObject *self, PyObject *args){
+    return PyLong_FromLong(0);
+}
+
+// for asymmetric gen public key
+PyObject *dap_enc_gen_pub_key_from_priv_py(PyObject *self, PyObject *args){
+    return PyLong_FromLong(0);
+}
+
+
+PyObject *dap_enc_gen_key_public_size_py(PyObject *self, PyObject *args){
+    return PyLong_FromLong(0);
+}
+PyObject *dap_enc_gen_key_public_py(PyObject *self, PyObject *args){
+    return PyLong_FromLong(0);
+}
+
+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){
+    return PyLong_FromLong(0);
+}
\ No newline at end of file