Fix misuse of signed ints in the HAVEGE module

Update havege.h to the new version in the crypto module.

This is technically an API break, since the type mbedtls_havege_state
is exposed in a public header. However normal applications should not
be affected.

There is no ABI break on platforms where uint32_t and int are treated
identically, which is virtually all of them.

Fix #2598
This commit is contained in:
Gilles Peskine 2019-06-07 16:42:35 +02:00
parent a3daa21d8c
commit f3820e36f7
2 changed files with 6 additions and 3 deletions

View File

@ -58,11 +58,13 @@ Bugfix
* Set the next sequence of the subject_alt_name to NULL when deleting * Set the next sequence of the subject_alt_name to NULL when deleting
sequence on failure. Found and fix suggested by Philippe Antoine. sequence on failure. Found and fix suggested by Philippe Antoine.
Credit to OSS-Fuzz. Credit to OSS-Fuzz.
* Fix misuse of signed arithmetic in the HAVEGE module. #2598
API Changes API Changes
* Extend the MBEDTLS_SSL_EXPORT_KEYS to export the handshake randbytes, * Extend the MBEDTLS_SSL_EXPORT_KEYS to export the handshake randbytes,
and the used tls-prf. and the used tls-prf.
* Add public API for tls-prf function, according to requested enum. * Add public API for tls-prf function, according to requested enum.
* The HAVEGE state type now uses uint32_t elements instead of int.
Changes Changes
* Server's RSA certificate in certs.c was SHA-1 signed. In the default * Server's RSA certificate in certs.c was SHA-1 signed. In the default

View File

@ -31,6 +31,7 @@
#endif #endif
#include <stddef.h> #include <stddef.h>
#include <stdint.h>
#define MBEDTLS_HAVEGE_COLLECT_SIZE 1024 #define MBEDTLS_HAVEGE_COLLECT_SIZE 1024
@ -43,9 +44,9 @@ extern "C" {
*/ */
typedef struct mbedtls_havege_state typedef struct mbedtls_havege_state
{ {
int PT1, PT2, offset[2]; uint32_t PT1, PT2, offset[2];
int pool[MBEDTLS_HAVEGE_COLLECT_SIZE]; uint32_t pool[MBEDTLS_HAVEGE_COLLECT_SIZE];
int WALK[8192]; uint32_t WALK[8192];
} }
mbedtls_havege_state; mbedtls_havege_state;