Yeah, I don't know if that would be technically valid
for FIPS either, I wouldn't be surprised if the certification
required pretty much a non-modified system.  I really couldn't
tell you though.  On AIX there was also another issue (in relation
to GCC), but if you're using AIX's xlc, it wouldn't have been
hit...

I think the real solution is to get the fixes piggy-backed on
a follow-up cert.

-Brad

Troy Monaghen wrote:
> In an earlier thread, Brad House spoke of the problem I am having:
> 
> 1) dladdr() does not exist in AIX4 or AIX5.1, but the
> DSO_pathbyaddr() function from crypto/dso/dso_dlfcn.c
> is not called from anywhere so it's dead code...
>    Just #if'd it out.
> 
> This is also true for AIX 5.2, and since touching any of the code in the
> FIPS tarball violates the security policy I dont think #if'ing it out is
> an option.
> 
> I have come up with the following workaround that does not touch any of
> the files in the FIPS tarball... but does involve touching an AIX header
> file.  I don't like touching system header files, but I dont see any
> other way.  I'd appreciate any comments on whether or not this might
> affect the validation status of the module.  I am using the IBM compiler
> and not gcc.
> 
> Note that a grep of the source indicates that the function that is
> failing compilation (DSO_pathbyaddr()) is not actually called by
> anything in the FIPS OpenSSL nor in 0.9.7j.
> 
> The two problems in the function are:
>    - The Dl_info structure used in the function is not declared
>    - The dladdr() function is not defined
> 
> My workaround involves modifying an AIX include file
> (/usr/include/dlfcn.h) to include a minimal declaration of the structure
> and a #define of the function that replaces it with the constant value
> zero (which is the return code of the function indicating an error).
> This is placed within an OPENSSL_FIPS #ifdef so that this code is only
> included when building FIPS OpenSSL.
> 
> Here is what I added to the end of /usr/include/dlfcn.h (just before the
> #endif /* _H_DLFCN */):
> 
> 
> /* Allow OpenSSL FIPS to compile without modifying its source code */
> #ifdef OPENSSL_FIPS
> 
> typedef struct {
>         char *dli_fname;
> } Dl_info;
> 
> #define dladdr(x,y) (0)
> 
> #endif
> 
> 
> ---
> 
> Thanks
> Troy
> 
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> Development Mailing List                       [email protected]
> Automated List Manager                           [EMAIL PROTECTED]
> 
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to