Hello, Help/suggestions, Anyone?
On Sat, Jul 17, 2021 at 11:15 PM Shariful Alam dipto181@gmail.com wrote:
Hello, I have a simple example code to decrypt an encrypted message using *rsa_private()*. I use *memory_buffer_alloc_init(), *in order to use a static memory for the computation. I want to run my code concurrently. My code works with a single pthread. However, when I try to run more than one thread my program fails to decrypt.
** I check the same code without *memory_buffer_alloc_init(), *it works concurrently, without any issues at all.
Therefore, I believe, the issue that I'm facing is coming from the use of static memory(e.g. *memory_buffer_alloc_init()*). The documentation of memorry_buffer_alloc.h shows,
/**
\brief Initialize use of stack-based memory allocator.
The stack-based allocator does memory management inside the
presented buffer and does not call malloc() and free().
It sets the global polarssl_malloc() and polarssl_free()
pointers
to its own functions.
(Provided polarssl_malloc() and polarssl_free() are thread-safe
if
POLARSSL_THREADING_C is defined)
\note This code is not optimized and provides a straight-forward
implementation of a stack-based memory allocator.
\param buf buffer to use as heap
\param len size of the buffer
\return 0 if successful
*/
So, I added the following configuration to the *config.h* file
- #define POLARSSL_THREADING_PTHREAD
- #define POLARSSL_THREADING_C
But I'm still getting errors while decrypting. Any help on how to fix this? or what else should I add into the config.h file to make *memory_buffer_alloc_init() *thread-safe? Here is my sample code: https://pastebin.com/uyW3vknt
Thanks, Shariful