Skip to content
Snippets Groups Projects
Commit bb3e604a authored by alexey.stratulat's avatar alexey.stratulat
Browse files

[*] Changed the function of creating a new key and deleting a key, added to...

[*] Changed the function of creating a new key and deleting a key, added to them the use of a new transfer acceptance mechanism, keys from / to python.
parent 938b93b0
No related branches found
No related tags found
1 merge request!26Support 3689
...@@ -5,19 +5,23 @@ ...@@ -5,19 +5,23 @@
#include "dap_common.h" #include "dap_common.h"
#include "wrapping_base58.h" #include "wrapping_base58.h"
#include "wrapping_base64.h" #include "wrapping_base64.h"
#include "wrapping_dap_enc_key.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#undef LOG_TAG
#define LOG_TAG "libdap-python-crypto" #define LOG_TAG "libdap-python-crypto"
static PyObject *dap_crypto_init(PyObject *self, PyObject *args); static PyObject *dap_crypto_init(PyObject *self, PyObject *args);
static PyObject *dap_crypto_deinit(); 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[] = { static PyMethodDef DapCryptoMethods[] = {
{"init", dap_crypto_init, METH_VARARGS, "Initialization of the DAP (Deus Applicaions Prototypes) crypto library"}, {"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"}, {"deinit", dap_crypto_deinit, METH_NOARGS, "Deinitialization of the DAP (Deus Applicaions Prototypes) crypto library"},
...@@ -25,6 +29,10 @@ static PyMethodDef DapCryptoMethods[] = { ...@@ -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"}, {"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"}, {"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"}, {"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} {NULL, NULL, 0, NULL}
}; };
......
#include "dap_enc_key.h" #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_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 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 ...@@ -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_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_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 PyObject *dap_enc_key_delete_py(PyObject *self, PyObject *args);//dap_enc_key_t * a_key); ->void
\ No newline at end of file
//void init_wrapping_dap_enc_key();
//dap_enc_key_t* get_dap_enc_key(PyBytesObject *object);
\ No newline at end of file
#include "libdap-crypto-python.h" #include "libdap-crypto-python.h"
static PyObject* dap_crypto_init(PyObject *self, PyObject *args){ static PyObject* dap_crypto_init(PyObject *self, PyObject *args){
dap_common_init("libdap-crypto","libdap-crypto-python-module.txt");
if(dap_enc_init()!=0){ if(dap_enc_init()!=0){
log_it(L_CRITICAL,"Can't init encryption module"); log_it(L_CRITICAL,"Can't init encryption module");
return PyLong_FromLong(-1); return PyLong_FromLong(-1);
...@@ -9,15 +10,32 @@ static PyObject* dap_crypto_init(PyObject *self, PyObject *args){ ...@@ -9,15 +10,32 @@ static PyObject* dap_crypto_init(PyObject *self, PyObject *args){
log_it(L_CRITICAL,"Can't init encryption key module"); log_it(L_CRITICAL,"Can't init encryption key module");
return PyLong_FromLong(-2); return PyLong_FromLong(-2);
} }
keys = key_list_init();
return PyLong_FromLong(0); return PyLong_FromLong(0);
} }
static PyObject* dap_crypto_deinit(){ static PyObject* dap_crypto_deinit(){
dap_enc_key_deinit(); dap_enc_key_deinit();
dap_enc_deinit(); dap_enc_deinit();
key_list_free(keys);
return PyLong_FromLong(0); 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){ PyMODINIT_FUNC PyInit_libdap_crypto_python_module(void){
return PyModule_Create(&dapcryptomodule); return PyModule_Create(&dapcryptomodule);
} }
......
#include "wrapping_dap_enc_key.h"
PyObject* dap_enc_key_get_enc_size_py(PyObject *self, PyObject *args){ PyObject* dap_enc_key_get_enc_size_py(PyObject *self, PyObject *args){
return PyLong_FromLong(0); return PyLong_FromLong(0);
} }
...@@ -14,11 +16,12 @@ PyObject* dap_enc_key_new_py(PyObject *self, PyObject *args){ ...@@ -14,11 +16,12 @@ PyObject* dap_enc_key_new_py(PyObject *self, PyObject *args){
if (type_key < 0 || type_key > 16){ if (type_key < 0 || type_key > 16){
return PyLong_FromLong(-1); return PyLong_FromLong(-1);
} }
dap_enc_key_t *key = dap_enc_key_new(type_key); dap_enc_key_t *new_key = dap_enc_key_new(type_key);
return PyLong_FromLong(0); 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){ PyObject *dap_enc_key_new_generate_py(PyObject *self, PyObject *args){
return PyLong_FromLong(0); return PyLong_FromLong(0);
} }
...@@ -44,6 +47,18 @@ PyObject *dap_enc_gen_key_public_py(PyObject *self, PyObject *args){ ...@@ -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){ PyObject *dap_enc_key_signature_delete_py(PyObject *self, PyObject *args){
return PyLong_FromLong(0); return PyLong_FromLong(0);
} }
PyObject *dap_enc_key_delete_py(PyObject *self, PyObject *args){ 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); return PyLong_FromLong(0);
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment