>> Sure you can. At least you can if ...

Thanks, but I'm looking for a clean solution, and foremost that means a portable solution. What you suggest is not portable.

Needless to say, there are numerous platforms which don't provide usable implementations of fopen, and in fact there are often good reasons to want to avoid using file system IO even on platforms that have it. And there are numerous platforms that either don't use GCC or use GCC but don't have all the functionality that GCC on Unix does. Surely there are others who have needed to use OpenSSL on platforms other than desktop platforms.

Is there no clean or portable way to override IO in OpenSSL?

Thanks.



Sure you can.  At least you can if the loader of your tool-chain you are using
supports partial linking (two or more *.o in -> one *.o out).
This "pre-link" run is done without any of your system libraries visible to
the loader. Once the standard fopen, fread, etc symbols have been resolved (suppressed) you should be good to go.

Just make an additional loader run with your custom wrapper and the
library(ies) for which you need to intercept the standard symbols.

If you where to actually name the tool chain components you are using (name and 
version),
someone might in return be nice enough to give you specific directions/options.
Otherwise, your stuck with RTFM for your tool-chain.

Mike

Is there no way to cleanly override IO in OpenSSL?

Thanks.



On Thu January 24 2008 13:03, OpenSSL wrote:
How might I make OpenSSL use my own 'file system' instead of fopen, fread, etc.?
The usual way to do that is to write a small bit of wrapper code that
resolves the fopen, fread, etc calls - and re-issues them as whatever
your system requires.

Then just specify your wrapper *.o to the linker (or do a partial link)
so it is found by the linker before your system libraries.

You will be able to use that pre-linked *.o for anything "C".
Mike
I need to make OpenSSL work on a system without implementations of fopen, fread, etc. However, I have access to functionality that is essentially the same as fopen, fread, etc. I see BIO_FLAGS_UPLINK but am not finding any description of it that might help me tell if it could be useful. I cannot simply provide my own linkable versions of fopen, fread, etc. as that would collide with other libraries I have to interoperate with. Another possibility might be to somehow take advantage of OPENSSL_NO_FP_API, but I can't easily tell how to accomplish that. A final fallback would be to somehow hack OpenSSL, but I'd rather avoid that.

Thanks.
__

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to