The platform is AIX. I have used the fipsld to link the application and
digest was properly embedded in the application executable.

I have wriitten a small pbm to test this.

main()
{

int (*dlsym_fips_mode_set)(int);
void *handle=dlopen("/usr/lib/libcrypto.a(libcrypto.so.0.9.8,"RT_LAZY");

dlsym_fips_mode_set=dlsym(handle,"FIPS_set_mode");

if(dlsym_fips_mode_set(1))
{
 printf("in fips mode\n");
}
}

I have generate the above program object file using cc and then i used the
fipsld to geneate the executable .

it was sucessfully entering into the fips mode .

I have generate a shared library of fips capable of openssl 9.8k and
fipscanister object module was embeeded in the shared library
of openssl 9.8k shared library. So i think fipsld is mainly used to embedded
the digest into execuatble by calculating the sha value of the
fipscanister.o (which is stored in the user machine) which is compared with
the fipscanister.o.sha1 (which is stored in the user machine).

I have another doudt , if the application is in the fips mode , will the
cryptography operation are done by the fipscanister.o stored in the
libcrypto.a ?

Thanks in advance

Rajan




.




On "Fri, May 29, 2009 at 7:10 PM, Dr. Stephen Henson <st...@openssl.org>wrote:

> On Fri, May 29, 2009, tensy joseph wrote:
>
> > I have gone through the user guide again , i am little confused now .
> This
> > statement makes me confuse
> >
> > A HMAC-SHA1 digest of the FIPS Object Module code and read-only data must
> be
> > generated and embedded in the application executable object for use by
> > the FIPS_mode_set()
> > function at runtime initialization.
> >
> > So if i do dlopen of libcrypto libary and load the FIPS_mode_set
> > dynamically.In this case , it will not embedd the sha digest
> > in the application executable. In this scenario, i cannot load this
> symbol
> > FIPS_mode_set dynamically and it need to be availbable at the compilation
> > time, will need to link to libcrypto.a at compile time.
> >
>
> What platform is that? libcrypto.a is normally a static library,
> libcrypto.so
> (or various other diverse extensions) is normally the shared library.
>
> When you build a FIPS capable version of OpenSSL using a shared library
> build
> the "application" is the shared library itself and the digest has already
> been
> embedded by the build procedure. So you just have to link (dynamically if
> you
> wish) against the shared library in the usual way. If the digest wasn't
> embedded properly FIPS_mode_set(1) would fail.
>
> Steve.
> --
> Dr Stephen N. Henson. Email, S/MIME and PGP keys: see homepage
> OpenSSL project core developer and freelance consultant.
> Homepage: http://www.drh-consultancy.demon.co.uk
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-users@openssl.org
> Automated List Manager                           majord...@openssl.org
>

Reply via email to