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