diff --git a/src/wrapping_base64.c b/src/wrapping_base64.c index df14bf844a88daaf919ec9e342f573b0f2e9c0a0..aaf19232e27938305a4b6fb882e70d6ab9aef2e3 100644 --- a/src/wrapping_base64.c +++ b/src/wrapping_base64.c @@ -9,27 +9,25 @@ if (l_dap_enc_data_type < 1 || l_dap_enc_data_type > 2){ return NULL; } - char* data = PyBytes_AsString(in_data); - size_t size_t_str = strlen(data); - char res[DAP_ENC_BASE64_ENCODE_SIZE(size_t_str)]; - dap_enc_base64_encode(data, size_t_str,res, l_dap_enc_data_type); - PyBytesObject *out_obj = (PyBytesObject *)PyBytes_FromFormat("%s", res); - return Py_BuildValue("S", out_obj); + void *in_void = PyBytes_AsString((PyObject*)in_data); + size_t pySize = (size_t)PyBytes_GET_SIZE(in_data); + char result[DAP_ENC_BASE64_ENCODE_SIZE(pySize)]; + dap_enc_base64_encode(in_void, pySize, result, l_dap_enc_data_type); + return Py_BuildValue("s", result); } PyObject *dap_decode_base64_py(PyObject *self, PyObject *args){ - PyObject *data; + const char *in_str; short int l_dap_enc_data_type=1; - if (!PyArg_ParseTuple(args, "S|h", &data, &l_dap_enc_data_type)) { + if (!PyArg_ParseTuple(args, "s|h", &in_str, &l_dap_enc_data_type)) { return NULL; } if (l_dap_enc_data_type < 1 || l_dap_enc_data_type > 2){ return NULL; } - char *in_data = PyBytes_AsString(data); - char *res = NULL; - res = DAP_NEW_SIZE(void, DAP_ENC_BASE64_ENCODE_SIZE(strlen(in_data))); - dap_enc_base64_decode(in_data, strlen(in_data), res, l_dap_enc_data_type); - PyBytesObject *pyBytesObject = (PyBytesObject *)PyBytes_FromFormat("%s", res); - return Py_BuildValue("S", pyBytesObject); -} \ No newline at end of file + void *res = DAP_NEW_SIZE(void*, DAP_ENC_BASE64_ENCODE_SIZE(strlen(in_str))); + //size_t decrypted_size = dap_enc_base58_decode(in_str, res); + size_t decrypted_size = dap_enc_base64_decode(in_str, strlen(in_str), res, l_dap_enc_data_type); + PyBytesObject *return_object = (PyBytesObject*)PyBytes_FromStringAndSize(res, (Py_ssize_t)decrypted_size); + return Py_BuildValue("O", return_object); +}