Fork of SandBox's original mbed-http (https://os.mbed.com/teams/sandbox/code/mbed-http/) and update for MbedOS6+ Content of TESTS folder was replaced with basic examples form original SandBox's HelloWorld
Diff: README.md
- Revision:
- 30:3ad153a3fdfd
- Parent:
- 29:383e9bfbfbed
- Child:
- 32:fa4d71265625
--- a/README.md Fri Aug 10 11:30:37 2018 +0100 +++ b/README.md Thu Sep 06 14:01:09 2018 -0500 @@ -1,6 +1,6 @@ # HTTP and HTTPS library for mbed OS 5 -This library is used to make HTTP and HTTPS calls from mbed OS 5 applications. +This library is used to make HTTP and HTTPS calls from Mbed OS 5 applications. ## HTTP Request API @@ -23,7 +23,7 @@ ## HTTPS Request API ```cpp -// pass in the root certificates that you trust, there is no central CA registry in mbed OS +// pass in the root certificates that you trust, there is no central CA registry in Mbed OS const char SSL_CA_PEM[] = "-----BEGIN CERTIFICATE-----\n" /* rest of the CA root certificates */; @@ -116,6 +116,61 @@ HttpsRequest* get_req = new HttpsRequest(socket, HTTP_GET, "https://httpbin.org/status/418"); ``` +**Note:** For HTTPS, if you are using a **K64F**, **K22F**, or **ODIN-W2** target, you will need to include the following `mbedtls_entropy_config.h` file to enable Mbed TLS entropy (placed in the root directory of your application): + +```cpp +/* Enable entropy for K64F, K22F, ODIN-W2. This means entropy is disabled for all other targets. */ +/* Do **NOT** deploy this code in production on other targets! */ +/* See https://tls.mbed.org/kb/how-to/add-entropy-sources-to-entropy-pool */ +#if defined(TARGET_K64F) || defined(TARGET_K22F) || defined(TARGET_UBLOX_EVK_ODIN_W2) +#undef MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES +#undef MBEDTLS_TEST_NULL_ENTROPY +#endif + +#if !defined(MBEDTLS_ENTROPY_HARDWARE_ALT) && \ + !defined(MBEDTLS_ENTROPY_NV_SEED) && !defined(MBEDTLS_TEST_NULL_ENTROPY) +#error "This hardware does not have an entropy source." +#endif /* !MBEDTLS_ENTROPY_HARDWARE_ALT && !MBEDTLS_ENTROPY_NV_SEED && + * !MBEDTLS_TEST_NULL_ENTROPY */ + +#if !defined(MBEDTLS_SHA1_C) +#define MBEDTLS_SHA1_C +#endif /* !MBEDTLS_SHA1_C */ + +#if !defined(MBEDTLS_RSA_C) +#define MBEDTLS_RSA_C +#endif /* !MBEDTLS_RSA_C */ + +/* + * This value is sufficient for handling 2048 bit RSA keys. + * + * Set this value higher to enable handling larger keys, but be aware that this + * will increase the stack usage. + */ +#define MBEDTLS_MPI_MAX_SIZE 1024 + +#define MBEDTLS_MPI_WINDOW_SIZE 1 +``` + +You will also need to enable a custom user config file macro in an `mbed_app.json` file (placed in the root of your application): + +```json +{ + "macros": ["MBEDTLS_USER_CONFIG_FILE=\"mbedtls_entropy_config.h\"", + "MBEDTLS_TEST_NULL_ENTROPY", "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES" ] +} +``` + +You will also need to include an `mbedtls_config.h` file in the root directory of your application: [`mbedtls_config.h`](https://os.mbed.com/teams/sandbox/code/http-example/file/5ad8f931e4ff/mbedtls_config.h) + +For all other targets, you will need the following macro present in an `mbed_app.json` file (placed in the root of your application): + +```json +{ + "macros": ["MBEDTLS_TEST_NULL_ENTROPY", "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES" ] +} +``` + ## Tested on * K64F with Ethernet.