Hanno Becker
27516979c1
Entropy: Fall through to /dev/random if getrandom() syscall unknown
...
This commit fixes issue #1212 related to platform-specific entropy
polling in an syscall-emulated environment.
Previously, the implementation of the entropy gathering function
`mbedtls_platform_entropy_poll()` for linux machines used the
following logic to determine how to obtain entropy from the kernel:
1. If the getrandom() system call identifier SYS_getrandom is present and
the kernel version is 3.17 or higher, use syscall( SYS_getrandom, ... )
2. Otherwise, fall back to reading from /dev/random.
There are two issues with this:
1. Portability:
When cross-compiling the code for a different
architecture and running it through system call
emulation in qemu, qemu reports the host kernel
version through uname but, as of v.2.5.0,
doesn't support emulating the getrandom() syscall.
This leads to `mbedtls_platform_entropy_poll()`
failing even though reading from /dev/random would
have worked.
2. Style:
Extracting the linux kernel version from
the output of `uname` is slightly tedious.
This commit fixes both by implementing the suggestion in #1212 :
- It removes the kernel-version detection through uname().
- Instead, it checks whether `syscall( SYS_getrandom, ... )`
fails with errno set to ENOSYS indicating an unknown system call.
If so, it falls through to trying to read from /dev/random.
Fixes #1212 .
2018-10-18 12:12:04 +01:00
Simon Butcher
0592ea772a
Merge remote-tracking branch 'public/pr/1140' into development
2018-09-27 11:37:42 +01:00
Simon Butcher
1afc767f23
Merge remote-tracking branch 'public/pr/1758' into development
2018-09-27 11:35:19 +01:00
Simon Butcher
c86993e33c
Merge remote-tracking branch 'public/pr/1970' into development
2018-09-27 09:48:54 +01:00
Simon Butcher
53546ea099
Update library version number to 2.13.1
2018-09-06 19:10:26 +01:00
Simon Butcher
5d40f67138
Merge remote-tracking branch 'public/pr/1927' into development-restricted
2018-09-06 16:24:48 +01:00
Hanno Becker
d2ef25478e
Don't define _POSIX_C_SOURCE in header file
2018-09-06 14:53:25 +01:00
Hanno Becker
f5106d54eb
Don't declare and define gmtime()-mutex on Windows platforms
2018-09-06 12:09:56 +01:00
Hanno Becker
323d8019bf
Correct preprocessor guards determining use of gmtime()
...
The previous code erroneously used gmtime_r() to implement
mbedtls_platform_gmtime() in case of a non-windows, non-unix system.
2018-09-06 11:30:57 +01:00
Hanno Becker
03b2bd4a06
Correct documentation of mbedtls_platform_gmtime_r()
...
Previous documentation stated that gmtime_r() was from the standard library,
but it's POSIX.
2018-09-06 09:08:55 +01:00
Hanno Becker
a50fed9910
Correct typo in documentation of mbedtls_platform_gmtime_r()
2018-09-06 09:08:39 +01:00
Hanno Becker
6f70581c4a
Correct POSIX version check to determine presence of gmtime_r()
...
Recent versions of POSIX move gmtime_r to the base.
2018-09-06 09:06:33 +01:00
Hanno Becker
c52ef407ba
Improve documentation of mbedtls_platform_gmtime_r()
2018-09-05 16:36:31 +01:00
Hanno Becker
7dd82b4f51
platform_utils.{c/h} -> platform_util.{c/h}
2018-09-05 16:26:04 +01:00
Hanno Becker
5a7fe14590
Don't include platform_time.h if !MBEDTLS_HAVE_TIME
...
platform_time.h includes time.h, which is not assumed to be present
on a system where MBEDTLS_HAVE_TIME is not defined.
2018-09-05 16:24:44 +01:00
Hanno Becker
9fbbf1c1f0
Improve wording of documentation of MBEDTLS_PLATFORM_GMTIME_R_ALT
2018-09-05 16:23:02 +01:00
Hanno Becker
c9468885a8
Fix typo in documentation of MBEDTLS_PLATFORM_GMTIME_R_ALT
2018-09-05 16:22:10 +01:00
Hanno Becker
921b76d056
Replace 'thread safe' by 'thread-safe' in the documentation
2018-09-05 16:21:36 +01:00
Hanno Becker
9a51d01984
Improve documentation of MBEDTLS_HAVE_TIME_DATE
2018-09-05 16:20:09 +01:00
Hanno Becker
acef292eac
ChangeLog: Add missing renamings gmtime -> gmtime_r
2018-09-05 16:19:07 +01:00
Hanno Becker
4e67cca1d9
Improve documentation of MBEDTLS_HAVE_TIME_DATE
2018-09-05 16:18:38 +01:00
Hanno Becker
48a816ff26
Minor documentation improvements
2018-09-05 15:22:22 +01:00
Hanno Becker
651d586ccf
Style: Add missing period in documentation in threading.h
2018-09-05 15:17:43 +01:00
Hanno Becker
6a739789f3
Rename mbedtls_platform_gmtime() to mbedtls_platform_gmtime_r()
...
For consistency, also rename MBEDTLS_PLATFORM_GMTIME_ALT to
MBEDTLS_PLATFORM_GMTIME_R_ALT.
2018-09-05 15:06:19 +01:00
Hanno Becker
be2e4bddd5
Guard decl and use of gmtime mutex by HAVE_TIME_DATE and !GMTIME_ALT
2018-09-05 14:44:31 +01:00
Hanno Becker
5f95c798a3
Remove another mentioning of IAR from config.h
2018-09-05 14:36:36 +01:00
Hanno Becker
272675f4c6
Correct documentation of mbedtls_platform_gmtime()
2018-09-05 14:03:02 +01:00
Hanno Becker
cfeb70c6b9
gmtime: Remove special treatment for IAR
...
Previous commits attempted to use `gmtime_s()` for IAR systems; however,
this attempt depends on the use of C11 extensions which lead to incompatibility
with other pieces of the library, such as the use of `memset()` which is
being deprecated in favor of `memset_s()` in C11.
2018-09-05 13:52:46 +01:00
Andres Amaya Garcia
94b540ac63
Avoid redefining _POSIX_C_SOURCE
2018-09-05 12:27:32 +01:00
Andres Amaya Garcia
45e30201a4
Document that IAR gmtime_s() is auto selected
2018-09-05 12:05:59 +01:00
Andres Amaya Garcia
433f911e59
Check for IAR in gmtime macros
2018-09-05 12:01:57 +01:00
Andres Amaya Garcia
e58088edb9
Clarify docs for MBEDTLS_HAVE_TIME_DATE
2018-09-05 11:55:49 +01:00
Andres Amaya Garcia
c29c34c1b4
Improve wording of gmtime feature in ChangeLog
2018-09-05 11:54:40 +01:00
Andres Amaya Garcia
3c9733a0a3
Fix typo in comment for gmtime macro defines
2018-09-05 11:52:07 +01:00
Andres Amaya Garcia
193fe893a6
Add missing _POSIX_C_SOURCE define in threading.h
2018-09-05 11:47:33 +01:00
Andres Amaya Garcia
ca04a01bb8
Document shorthand gmtime macros
2018-09-05 11:43:57 +01:00
Andres Amaya Garcia
8c9a620fb6
Fix missing word in ChangeLog entry for gmtime()
2018-09-05 11:30:28 +01:00
Andres Amaya Garcia
209960611f
Use gmtime_s() for IAR
2018-09-05 11:27:56 +01:00
Andres Amaya Garcia
e9b10b21f1
Define _POSIX_C_SOURCE in threading.c before POSIX detection
2018-09-05 11:25:30 +01:00
Andres Amaya Garcia
c2f948b6c6
Fix grammar in docs for MBEDTLS_HAVE_TIME_DATE
2018-09-05 11:21:44 +01:00
Simon Butcher
c0a63bd0c1
Remove duplication of some entries in the ChangeLog
...
Fixes for #1941 and #1954 were listed twice.
2018-09-04 09:54:28 +01:00
Simon Butcher
b70158b9b4
Merge pull request #505 from sbutcher-arm/mbedtls-version-2.13.0
...
Update library version number to 2.13.0
2018-08-31 17:29:05 +01:00
Simon Butcher
4d075cd7d0
Update library version number to 2.13.0
2018-08-31 15:59:10 +01:00
Simon Butcher
b5afb97244
Revised and clarified ChangeLog
...
Minor changes to fix language, merge mistakes and incorrect classifications of
changes.
2018-08-31 11:59:56 +01:00
Simon Butcher
0bbb4fc132
Merge branch 'development' into development
2018-08-30 01:11:35 +01:00
Simon Butcher
552754a6ee
Merge remote-tracking branch 'public/pr/1988' into development
2018-08-30 00:57:28 +01:00
Simon Butcher
68dbc94720
Merge remote-tracking branch 'public/pr/1951' into development
2018-08-30 00:56:56 +01:00
Simon Butcher
e50128a692
Merge remote-tracking branch 'public/pr/1994' into development
2018-08-30 00:56:18 +01:00
Simon Butcher
07de4c0035
Merge remote-tracking branch 'public/pr/1920' into development
2018-08-30 00:56:08 +01:00
Simon Butcher
822a9cca8c
Merge remote-tracking branch 'public/pr/1994' into development-restricted
2018-08-29 18:03:03 +01:00