diff --git a/src/message_api.cc b/src/message_api.cc index d9141ab..dd72986 100644 --- a/src/message_api.cc +++ b/src/message_api.cc @@ -3,7 +3,7 @@ namespace pEp { namespace PythonAdapter { - Message encrypt_message(Message& src, list extra, int enc_format, + Message encrypt_message(Message src, list extra, int enc_format, int flags) { Identity _from = src.from(); @@ -30,6 +30,30 @@ namespace pEp { Message dst(_dst); return dst; } + + tuple decrypt_message(Message src) + { + message *_dst = NULL; + stringlist_t *_keylist = NULL; + PEP_color _color = PEP_rating_undefined; + PEP_decrypt_flags_t _flags = 0; + + PEP_STATUS status = decrypt_message(session, src, &_dst, &_keylist, + &_color, &_flags); + _throw_status(status); + + list keylist; + if (_keylist) { + keylist = from_stringlist(_keylist); + free_stringlist(_keylist); + } + + int color = (int) _color; + int flags = (int) _flags; + + Message dst(_dst); + return make_tuple(dst, keylist, color, flags); + } } } diff --git a/src/message_api.hh b/src/message_api.hh index 55be578..49a2fcc 100644 --- a/src/message_api.hh +++ b/src/message_api.hh @@ -4,8 +4,9 @@ namespace pEp { namespace PythonAdapter { - Message encrypt_message(Message& src, list extra, int enc_format, + Message encrypt_message(Message src, list extra, int enc_format, int flags); + tuple decrypt_message(Message src); } } diff --git a/src/pEpmodule.cc b/src/pEpmodule.cc index 5f8adb8..743f352 100644 --- a/src/pEpmodule.cc +++ b/src/pEpmodule.cc @@ -184,6 +184,7 @@ BOOST_PYTHON_MODULE(pEp) // message API def("encrypt_message", &encrypt_message, "encrypt message in memory"); + def("decrypt_message", &decrypt_message, "decrypt message in memory"); // init() and release()