mbed-os-example-client which can run on GR-PEACH as-is

Committer:
Osamu Nakamura
Date:
Mon Sep 04 17:13:29 2017 +0900
Revision:
1:297185d9bb5e
Parent:
0:c0b64bdd4f07
Update for compiling this program on online compiler

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Osamu Nakamura 0:c0b64bdd4f07 1 /**
Osamu Nakamura 0:c0b64bdd4f07 2 * Minimal configuration for using mbedtls as part of mbed-client
Osamu Nakamura 0:c0b64bdd4f07 3 *
Osamu Nakamura 0:c0b64bdd4f07 4 * NOTE! This is an optimized, minimal configuration for mbed Client.
Osamu Nakamura 0:c0b64bdd4f07 5 * We know it works with mbed Client but if you want to add more
Osamu Nakamura 0:c0b64bdd4f07 6 * services/communications to the application yourself - please ensure
Osamu Nakamura 0:c0b64bdd4f07 7 * you update this configuration accordingly. The default configuration
Osamu Nakamura 0:c0b64bdd4f07 8 * can be found from mbedTLS Github:
Osamu Nakamura 0:c0b64bdd4f07 9 *
Osamu Nakamura 0:c0b64bdd4f07 10 * https://github.com/ARMmbed/mbedtls/blob/development/include/mbedtls/config.h
Osamu Nakamura 0:c0b64bdd4f07 11 *
Osamu Nakamura 0:c0b64bdd4f07 12 *
Osamu Nakamura 0:c0b64bdd4f07 13 * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved
Osamu Nakamura 0:c0b64bdd4f07 14 * SPDX-License-Identifier: Apache-2.0
Osamu Nakamura 0:c0b64bdd4f07 15 *
Osamu Nakamura 0:c0b64bdd4f07 16 * Licensed under the Apache License, Version 2.0 (the "License"); you may
Osamu Nakamura 0:c0b64bdd4f07 17 * not use this file except in compliance with the License.
Osamu Nakamura 0:c0b64bdd4f07 18 * You may obtain a copy of the License at
Osamu Nakamura 0:c0b64bdd4f07 19 *
Osamu Nakamura 0:c0b64bdd4f07 20 * http://www.apache.org/licenses/LICENSE-2.0
Osamu Nakamura 0:c0b64bdd4f07 21 *
Osamu Nakamura 0:c0b64bdd4f07 22 * Unless required by applicable law or agreed to in writing, software
Osamu Nakamura 0:c0b64bdd4f07 23 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
Osamu Nakamura 0:c0b64bdd4f07 24 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Osamu Nakamura 0:c0b64bdd4f07 25 * See the License for the specific language governing permissions and
Osamu Nakamura 0:c0b64bdd4f07 26 * limitations under the License.
Osamu Nakamura 0:c0b64bdd4f07 27 *
Osamu Nakamura 0:c0b64bdd4f07 28 * This file is part of mbed TLS (https://tls.mbed.org)
Osamu Nakamura 0:c0b64bdd4f07 29 */
Osamu Nakamura 0:c0b64bdd4f07 30
Osamu Nakamura 0:c0b64bdd4f07 31
Osamu Nakamura 0:c0b64bdd4f07 32 #ifndef MBEDTLS_CUSTOM_CONFIG_H
Osamu Nakamura 0:c0b64bdd4f07 33 #define MBEDTLS_CUSTOM_CONFIG_H
Osamu Nakamura 0:c0b64bdd4f07 34
Osamu Nakamura 0:c0b64bdd4f07 35 /* System support */
Osamu Nakamura 0:c0b64bdd4f07 36 #define MBEDTLS_HAVE_ASM
Osamu Nakamura 0:c0b64bdd4f07 37
Osamu Nakamura 0:c0b64bdd4f07 38 /* mbed TLS feature support */
Osamu Nakamura 0:c0b64bdd4f07 39 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
Osamu Nakamura 0:c0b64bdd4f07 40 #define MBEDTLS_ECP_NIST_OPTIM
Osamu Nakamura 0:c0b64bdd4f07 41 #define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
Osamu Nakamura 0:c0b64bdd4f07 42 #define MBEDTLS_SSL_PROTO_TLS1_2
Osamu Nakamura 0:c0b64bdd4f07 43 #define MBEDTLS_SSL_PROTO_DTLS
Osamu Nakamura 0:c0b64bdd4f07 44 #define MBEDTLS_SSL_DTLS_ANTI_REPLAY
Osamu Nakamura 0:c0b64bdd4f07 45 #define MBEDTLS_SSL_DTLS_HELLO_VERIFY
Osamu Nakamura 0:c0b64bdd4f07 46 #define MBEDTLS_SSL_EXPORT_KEYS
Osamu Nakamura 0:c0b64bdd4f07 47
Osamu Nakamura 0:c0b64bdd4f07 48 /* mbed TLS modules */
Osamu Nakamura 0:c0b64bdd4f07 49 #define MBEDTLS_AES_C
Osamu Nakamura 0:c0b64bdd4f07 50 #define MBEDTLS_ASN1_PARSE_C
Osamu Nakamura 0:c0b64bdd4f07 51 #define MBEDTLS_ASN1_WRITE_C
Osamu Nakamura 0:c0b64bdd4f07 52 #define MBEDTLS_BIGNUM_C
Osamu Nakamura 0:c0b64bdd4f07 53 #define MBEDTLS_CIPHER_C
Osamu Nakamura 0:c0b64bdd4f07 54 #define MBEDTLS_CTR_DRBG_C
Osamu Nakamura 0:c0b64bdd4f07 55 #define MBEDTLS_ECP_C
Osamu Nakamura 0:c0b64bdd4f07 56 #define MBEDTLS_ENTROPY_C
Osamu Nakamura 0:c0b64bdd4f07 57 #define MBEDTLS_MD_C
Osamu Nakamura 0:c0b64bdd4f07 58 #define MBEDTLS_OID_C
Osamu Nakamura 0:c0b64bdd4f07 59 #define MBEDTLS_PK_C
Osamu Nakamura 0:c0b64bdd4f07 60 #define MBEDTLS_PK_PARSE_C
Osamu Nakamura 0:c0b64bdd4f07 61 #define MBEDTLS_SHA256_C
Osamu Nakamura 0:c0b64bdd4f07 62 #define MBEDTLS_SSL_COOKIE_C
Osamu Nakamura 0:c0b64bdd4f07 63 #define MBEDTLS_SSL_CLI_C
Osamu Nakamura 0:c0b64bdd4f07 64 #define MBEDTLS_SSL_SRV_C
Osamu Nakamura 0:c0b64bdd4f07 65 #define MBEDTLS_SSL_TLS_C
Osamu Nakamura 0:c0b64bdd4f07 66
Osamu Nakamura 0:c0b64bdd4f07 67 // XXX mbedclient needs these: mbedtls_x509_crt_free, mbedtls_x509_crt_init, mbedtls_x509_crt_parse
Osamu Nakamura 0:c0b64bdd4f07 68 #define MBEDTLS_X509_USE_C
Osamu Nakamura 0:c0b64bdd4f07 69 #define MBEDTLS_X509_CRT_PARSE_C
Osamu Nakamura 0:c0b64bdd4f07 70
Osamu Nakamura 0:c0b64bdd4f07 71 // XXX: clean these up!!
Osamu Nakamura 0:c0b64bdd4f07 72 #define MBEDTLS_SHA512_C
Osamu Nakamura 0:c0b64bdd4f07 73 #define MBEDTLS_ECDH_C
Osamu Nakamura 0:c0b64bdd4f07 74 #define MBEDTLS_GCM_C
Osamu Nakamura 0:c0b64bdd4f07 75
Osamu Nakamura 0:c0b64bdd4f07 76 #define MBEDTLS_ECDH_C
Osamu Nakamura 0:c0b64bdd4f07 77 #define MBEDTLS_ECDSA_C
Osamu Nakamura 0:c0b64bdd4f07 78 #define MBEDTLS_X509_CRT_PARSE_C
Osamu Nakamura 0:c0b64bdd4f07 79
Osamu Nakamura 0:c0b64bdd4f07 80 // Remove RSA, save 20KB at total
Osamu Nakamura 0:c0b64bdd4f07 81 #undef MBEDTLS_RSA_C
Osamu Nakamura 0:c0b64bdd4f07 82 #undef MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
Osamu Nakamura 0:c0b64bdd4f07 83
Osamu Nakamura 0:c0b64bdd4f07 84 // Remove error messages, save 10KB of ROM
Osamu Nakamura 0:c0b64bdd4f07 85 #undef MBEDTLS_ERROR_C
Osamu Nakamura 0:c0b64bdd4f07 86
Osamu Nakamura 0:c0b64bdd4f07 87 // Remove selftesting and save 11KB of ROM
Osamu Nakamura 0:c0b64bdd4f07 88 #undef MBEDTLS_SELF_TEST
Osamu Nakamura 0:c0b64bdd4f07 89
Osamu Nakamura 0:c0b64bdd4f07 90 // Reduces ROM size by 30 kB
Osamu Nakamura 0:c0b64bdd4f07 91 #undef MBEDTLS_ERROR_STRERROR_DUMMY
Osamu Nakamura 0:c0b64bdd4f07 92 #undef MBEDTLS_VERSION_FEATURES
Osamu Nakamura 0:c0b64bdd4f07 93 #undef MBEDTLS_DEBUG_C
Osamu Nakamura 0:c0b64bdd4f07 94
Osamu Nakamura 0:c0b64bdd4f07 95 // needed for parsing the certificates
Osamu Nakamura 0:c0b64bdd4f07 96 #define MBEDTLS_PEM_PARSE_C
Osamu Nakamura 0:c0b64bdd4f07 97 // dep of the previous
Osamu Nakamura 0:c0b64bdd4f07 98 #define MBEDTLS_BASE64_C
Osamu Nakamura 0:c0b64bdd4f07 99
Osamu Nakamura 0:c0b64bdd4f07 100 // Reduce IO buffer to save RAM, default is 16KB
Osamu Nakamura 0:c0b64bdd4f07 101 #define MBEDTLS_SSL_MAX_CONTENT_LEN 2048
Osamu Nakamura 0:c0b64bdd4f07 102
Osamu Nakamura 0:c0b64bdd4f07 103 // define to save 8KB RAM at the expense of ROM
Osamu Nakamura 0:c0b64bdd4f07 104 #undef MBEDTLS_AES_ROM_TABLES
Osamu Nakamura 0:c0b64bdd4f07 105
Osamu Nakamura 0:c0b64bdd4f07 106 // Save ROM and a few bytes of RAM by specifying our own ciphersuite list
Osamu Nakamura 0:c0b64bdd4f07 107 #define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
Osamu Nakamura 0:c0b64bdd4f07 108
Osamu Nakamura 0:c0b64bdd4f07 109 #include "mbedtls/check_config.h"
Osamu Nakamura 0:c0b64bdd4f07 110
Osamu Nakamura 0:c0b64bdd4f07 111 #endif /* MBEDTLS_CUSTOM_CONFIG_H */