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 <oliver.wolff@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
This commit is contained in:
parent
f3b68e352e
commit
c7a059e376
3
src/3rdparty/rfc6234/sha.h
vendored
3
src/3rdparty/rfc6234/sha.h
vendored
@ -70,7 +70,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
// stdint.h include commented out by Nokia, it is not available on all platforms.
|
||||||
|
// #include <stdint.h>
|
||||||
/*
|
/*
|
||||||
* If you do not have the ISO standard stdint.h header file, then you
|
* If you do not have the ISO standard stdint.h header file, then you
|
||||||
* must typedef the following:
|
* must typedef the following:
|
||||||
|
@ -47,6 +47,19 @@
|
|||||||
#include "../../3rdparty/md4/md4.cpp"
|
#include "../../3rdparty/md4/md4.cpp"
|
||||||
#include "../../3rdparty/sha1/sha1.cpp"
|
#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 <stdint.h>' on line 74
|
||||||
|
#include "../../3rdparty/rfc6234/sha.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
These 2 functions replace macros of the same name in sha224-256.c and
|
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'
|
sha384-512.c. Originally, these macros relied on a global static 'addTemp'
|
||||||
@ -57,8 +70,6 @@
|
|||||||
2. static variables are not thread-safe, we do not want multiple threads
|
2. static variables are not thread-safe, we do not want multiple threads
|
||||||
computing a hash to corrupt one another
|
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 SHA224_256AddLength(SHA256Context *context, unsigned int length);
|
||||||
static int SHA384_512AddLength(SHA512Context *context, unsigned int length);
|
static int SHA384_512AddLength(SHA512Context *context, unsigned int length);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user