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
|
||||
* must typedef the following:
|
||||
|
@ -47,6 +47,19 @@
|
||||
#include "../../3rdparty/md4/md4.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
|
||||
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
|
||||
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user