Wireshark-dev: Re: [Wireshark-dev] Is it possible to update the version of gcrypt?
From: Pascal Quantin <[email protected]>
Date: Sun, 30 Mar 2014 19:00:31 +0200
2014-01-08 0:25 GMT+01:00 Pascal Quantin <[email protected]>:
Hi Martin,

I tried myself to compile the libgpg-error 1.12 and libgcrypt 1.6.0 libraries using the mingw cross-compilation toolchain but I was not really successful (Wireshark does not start due to an issue with the exported symbols from libgpg-error-0.dll).

The good news is that OpenSUSE now provides updated libgcrypt / libgpg-error libraries both for win32 and win64 now
http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/noarch/
http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/noarch/

It means that we might be able to have support for AES CMAC on Windows (IF those new libraries are still compatible with our current version of GnuTLS).

So I tried those OpenSUSE libraries but I have the same error as with my own build: I get an error that can be roughly translated as
"the procedure entry point gpg_strerror cannot be found in the dynamic library libgcrypt-20.dll"
This function is supposed to be exported by libgpg-error-0.dll.

Gerald, according to the README.Wireshark file found in gnutls-2.12.18-1.2-win32ws archive, you manually modified the OpenSUSE packages:
  - Definition files were created using "pexports".
  - Import libraries were created using the MSVC++ "lib" utility using the "make-lib.sh" script.
I do not know where to find those utilities neither how to use them.

Maybe those missing steps on my side can explain my issue. Would you be OK if we to try to upgrade those libraries? If yes, could you help?

2 small things I noted:
- libgcrypt-11.dll/lib is now renamed libgcrypt-20.dll/lib. It impacts config.nmake, Makefile.nmake, cmake\modules\FindGCRYPT.cmake, packaging\nsis\wireshark.nsi and ui\qt\QtShark.pro
- the openSUSE libraries require an extra libgcc_s_sjlj-1.dll file found in mingw32-libgcc-4.8.2-1.2.noarch.rpm archive (my own compiled libraries did not need it but I failed to compile a win64 variant so far).

Hi all,

I restarted playing with the libraries provided by OpenSUSE this weekend and was able to get libgcrypt 1.6.0 working on my Windows machine.
The remaining problem is that we should either recompile GnuTLS 2.12.18 with this newer libgcrypt (Im' not willing to do so), or upgrade GnuTLS to the version 3.1.22 provided by OpenSUSE.
We deactivated the use of GnuTLS 3.X in the past due to their move to GPL3.0. But according to their website and the header files, the core library is still LGPL 2.1+. Would it make it usable for us?

Thanks,
Pascal.