-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #5582 from gilles-peskine-arm/ssl-opt-auto-psk
Run ssl-opt.sh in more reduced configurations
- Loading branch information
Showing
9 changed files
with
452 additions
and
157 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Bugfix | ||
* In configurations with MBEDTLS_SSL_DTLS_CONNECTION_ID enabled but not | ||
MBEDTLS_DEBUG_C, DTLS handshakes using CID would crash due to a null | ||
pointer dereference. Fix this. Fixes #3998. | ||
The fix was released, but not announced, in Mbed TLS 3.1.0. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
/** | ||
* \file config-ccm-psk-dtls1_2.h | ||
* | ||
* \brief Small configuration for DTLS 1.2 with PSK and AES-CCM ciphersuites | ||
*/ | ||
/* | ||
* Copyright The Mbed TLS Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may | ||
* not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
/* | ||
* Minimal configuration for DTLS 1.2 with PSK and AES-CCM ciphersuites | ||
* | ||
* Distinguishing features: | ||
* - Optimized for small code size, low bandwidth (on an unreliable transport), | ||
* and low RAM usage. | ||
* - No asymmetric cryptography (no certificates, no Diffie-Hellman key | ||
* exchange). | ||
* - Fully modern and secure (provided the pre-shared keys are generated and | ||
* stored securely). | ||
* - Very low record overhead with CCM-8. | ||
* - Includes several optional DTLS features typically used in IoT. | ||
* | ||
* See README.txt for usage instructions. | ||
*/ | ||
|
||
/* System support */ | ||
//#define MBEDTLS_HAVE_TIME /* Optionally used in Hello messages */ | ||
/* Other MBEDTLS_HAVE_XXX flags irrelevant for this configuration */ | ||
|
||
/* Mbed TLS modules */ | ||
#define MBEDTLS_AES_C | ||
#define MBEDTLS_CCM_C | ||
#define MBEDTLS_CIPHER_C | ||
#define MBEDTLS_CTR_DRBG_C | ||
#define MBEDTLS_ENTROPY_C | ||
#define MBEDTLS_MD_C | ||
#define MBEDTLS_NET_C | ||
/* The library does not currently support enabling SHA-224 without SHA-256. | ||
* A future version of the library will have this option disabled | ||
* by default. */ | ||
#define MBEDTLS_SHA224_C | ||
#define MBEDTLS_SHA256_C | ||
#define MBEDTLS_SSL_CLI_C | ||
#define MBEDTLS_SSL_COOKIE_C | ||
#define MBEDTLS_SSL_SRV_C | ||
#define MBEDTLS_SSL_TLS_C | ||
#define MBEDTLS_TIMING_C | ||
|
||
/* TLS protocol feature support */ | ||
#define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED | ||
#define MBEDTLS_SSL_PROTO_TLS1_2 | ||
#define MBEDTLS_SSL_PROTO_DTLS | ||
#define MBEDTLS_SSL_DTLS_ANTI_REPLAY | ||
#define MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE | ||
#define MBEDTLS_SSL_DTLS_CONNECTION_ID | ||
#define MBEDTLS_SSL_DTLS_HELLO_VERIFY | ||
#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH | ||
|
||
/* | ||
* Use only CCM_8 ciphersuites, and | ||
* save ROM and a few bytes of RAM by specifying our own ciphersuite list | ||
*/ | ||
#define MBEDTLS_SSL_CIPHERSUITES \ | ||
MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, \ | ||
MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8 | ||
|
||
/* | ||
* Save RAM at the expense of interoperability: do this only if you control | ||
* both ends of the connection! (See comments in "mbedtls/ssl.h".) | ||
* The optimal size here depends on the typical size of records. | ||
*/ | ||
#define MBEDTLS_SSL_IN_CONTENT_LEN 256 | ||
#define MBEDTLS_SSL_OUT_CONTENT_LEN 256 | ||
|
||
/* Save RAM at the expense of ROM */ | ||
#define MBEDTLS_AES_ROM_TABLES | ||
|
||
/* Save some RAM by adjusting to your exact needs */ | ||
#define MBEDTLS_PSK_MAX_LEN 16 /* 128-bits keys are generally enough */ | ||
|
||
/* | ||
* You should adjust this to the exact number of sources you're using: default | ||
* is the "platform_entropy_poll" source, but you may want to add other ones | ||
* Minimum is 2 for the entropy test suite. | ||
*/ | ||
#define MBEDTLS_ENTROPY_MAX_SOURCES 2 | ||
|
||
/* These defines are present so that the config modifying scripts can enable | ||
* them during tests/scripts/test-ref-configs.pl */ | ||
//#define MBEDTLS_USE_PSA_CRYPTO | ||
//#define MBEDTLS_PSA_CRYPTO_C | ||
|
||
/* Error messages and TLS debugging traces | ||
* (huge code size increase, needed for tests/ssl-opt.sh) */ | ||
//#define MBEDTLS_DEBUG_C | ||
//#define MBEDTLS_ERROR_C |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.