Skip Menu |

This queue is for tickets about the Crypt-RIPEMD160 CPAN distribution.

Report information
The Basics
Id: 19138
Status: resolved
Worked: 2 hours (120 min)
Priority: 0/
Queue: Crypt-RIPEMD160

People
Owner: Nobody in particular
Requestors: andrew [...] etc.gen.nz
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: (no value)
Fixed in: (no value)



Subject: unsigned 32-bit int type is wrong on Linux amd64.
rmd160.h uses an unsigned long for an unsigned 32-bit integer (which is 4 bytes on x86). But the AMD64 ABI defines a long as 8 bytes. It is necessary to change the typedef for dword in rmd160.h to be an unsigned int. Without this change the digests generated are different from the test digests. GCC on this machine defines u_int8_t, u_int16_t and u_int32_t which might be better to use (as defined by ISO C). Cheers!
A patch which just follows Andrew's advice is on CPAN as ANDK/patches/Crypt-RIPEMD160-0.04-Andrew_Ruthven-01.patch.gz e.g. at ftp://cpan.cpantesters.org/CPAN/authors/id/A/AN/ANDK/patches/Crypt-RIPEMD160-0.04-Andrew_Ruthven-01.patch.gz The distroprefs file at http://github.com/andk/cpanpm/blob/79b5d3f6047852487782d5bbfc111d46bf87dd1c/distroprefs/CHGEUER.Crypt-RIPEMD160.yml allows automatic patching when using CPAN.pm Hope this helps others,
This is causing bugs in Crypt::OpenPGP. See RT 53323
I have taken over maintenance of this module. The fix is on github via the suggested patch: https://github.com/toddr/Crypt- RIPEMD160/commit/c87c7e0b2d6cb1d94de8056ae27cd2f101401fd8 0.04_01 is released to CPAN for testing prior to a stable release.