Hi,
I have been doing some work using cryptography in Genode with the libcrypto library from OpenSSL and I'm encountering some errors that seem curious to me.
If I use everything related with openssl in the Main of a program, eg public key, private key, etc...
The following warning pop up when I start the main:
Could not open file "config"
Could not obtain config file
no VFS configured
There are pretty obvious since I simply didn't configure a VFS or made a config file for openssl. It hasn't really given me any problems yet.
I get these errors when I go for the first encryption:
no plugin found for fcntl(2)
no plugin found for write(2)
plugin()->open("") failed
The first 2 are probably since libc can't find those 2 plugins. I have no idea what the third error is nor do I know how libc can find the plugins. From what I found in the mailing list I assume I should configure a VFS but I'm not sure. Again, execution goes on after this, no real problems.
And once all is done
failed to submit signal context
virtual void Genode::Rm_session_component::detach(Genode::Rm_session::Local_addr): no attachment at 1ff000
No idea why this is happening. but it's also not really giving any problems. The programs exits nicely after this.
The problems appear when I try to use cryptography in a thread. Everything works fine before I start the thread, eg. during the constructor of the thread, but once the start function of the thread is called, I get the following error when I try to encrypt any data:
init -> crypto_test -> crypto: unresolved pagefault at ip=5e6dc
core -> pager_activation: cannot submit unknown signal context 0
And then execution stops. The main reason I don't understand why this is happening is since it does seem to work when used in a main.
Could this have something to do with the plugins that can't be found? Seems unlikely to me.
What seems more likely is that it's related to the use of the c library in a thread or to the final warning I get when executing it in a main but as I said, no idea why this's happening or what to do about it.
Any input as to why this is happening or even better how to fix it, would be much appreciated.
Best regards,
Vincent