gnutls-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How to work with Libgcrypt in FIPS mode


From: Simon Josefsson
Subject: How to work with Libgcrypt in FIPS mode
Date: Sun, 21 Sep 2008 13:07:33 +0200
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/22.2 (gnu/linux)

Simon Josefsson <address@hidden> writes:

> ** libgnutls-extra: Add function to work with Libgcrypt in FIPS mode.
> The function is gnutls_register_md5_handler.  When libgcrypt is in
> FIPS mode, MD5 is disabled, but TLS normally requires use of MD5 in
> the PRF.

Some more explanation related to this may be in order.  If you have
libgcrypt 1.4.3 or later, and create a file /etc/gcrypt/fips_enabled
libgcrypt will run in FIPS mode.  One consequence of this is that MD5 is
disabled...  alas, TLS typically requires MD5, so GnuTLS will not be
very useful with Libgcrypt in FIPS mode.

However, if you link your application to libgnutls-extra and call
gnutls_register_md5_handler, GnuTLS will begin to use an internal MD5
implementation instead of calling libgcrypt.  GnuTLS should then be
fully functional.

The command line tools gnutls-cli, gnutls-serv, and certtool use this
function, and I can successfully use libgcrypt in FIPS mode and connect
to various sites.

Note that this doesn't make GnuTLS FIPS certified, but it is a step
forward.  I believe it is possible to get an exception for MD5 as used
in TLS, and possible all of that code could be moved down into
libgcrypt.  In theory I don't see any reason why GnuTLS can't be FIPS
certified.  Someone needs to sponsor this though.

/Simon




reply via email to

[Prev in Thread] Current Thread [Next in Thread]