From: Bradley T. Hughes Date: Tue, 28 Feb 2012 08:25:20 +0000 (+0100) Subject: Compile SHA-2 code on systems without stdint.h X-Git-Tag: qt-v5.0.0-alpha1~695 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c7a059e376bd0105ad470017a774715b112de8b4;p=profile%2Fivi%2Fqtbase.git Compile SHA-2 code on systems without stdint.h stdint.h is a C99-ism, which isn't available everywhere. The sha.h header tells us we need 4 typedefs. Add these to qcryptographichash.cpp before including sha.h and comment out the stdint.h include in sha.h. Change-Id: I1ede9569fa7eaa84de3befeb3c58cc6a05aa522c Reviewed-by: Oliver Wolff Reviewed-by: Bradley T. Hughes --- diff --git a/src/3rdparty/rfc6234/sha.h b/src/3rdparty/rfc6234/sha.h index 1ffd688..9c26f02 100644 --- a/src/3rdparty/rfc6234/sha.h +++ b/src/3rdparty/rfc6234/sha.h @@ -70,7 +70,8 @@ * */ -#include +// stdint.h include commented out by Nokia, it is not available on all platforms. +// #include /* * If you do not have the ISO standard stdint.h header file, then you * must typedef the following: diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp index 9c27af0..31a0fdc 100644 --- a/src/corelib/tools/qcryptographichash.cpp +++ b/src/corelib/tools/qcryptographichash.cpp @@ -48,6 +48,19 @@ #include "../../3rdparty/sha1/sha1.cpp" /* + These typedefs are needed by the RFC6234 code. Normally they would come + from from stdint.h, but since this header is not available on all platforms + (MSVC 2008, for example), we need to define them ourselves. +*/ +typedef QT_PREPEND_NAMESPACE(quint64) uint64_t; +typedef QT_PREPEND_NAMESPACE(quint32) uint32_t; +typedef QT_PREPEND_NAMESPACE(quint8) uint8_t; +typedef QT_PREPEND_NAMESPACE(qint16) int_least16_t; +// Header from rfc6234 with 1 modification: +// sha1.h - commented out '#include ' on line 74 +#include "../../3rdparty/rfc6234/sha.h" + +/* These 2 functions replace macros of the same name in sha224-256.c and sha384-512.c. Originally, these macros relied on a global static 'addTemp' variable. We do not want this for 2 reasons: @@ -57,8 +70,6 @@ 2. static variables are not thread-safe, we do not want multiple threads computing a hash to corrupt one another */ -// Header from rfc6234 without modifications -#include "../../3rdparty/rfc6234/sha.h" static int SHA224_256AddLength(SHA256Context *context, unsigned int length); static int SHA384_512AddLength(SHA512Context *context, unsigned int length);