mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-29 09:04:22 +01:00
Save RAM when only a few ciphersuites are defined
This commit is contained in:
parent
c27807dd1e
commit
791684c058
@ -260,10 +260,6 @@ static const int ciphersuite_preference[] =
|
|||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_CIPHERSUITES 176
|
|
||||||
static int supported_ciphersuites[MAX_CIPHERSUITES];
|
|
||||||
static int supported_init = 0;
|
|
||||||
|
|
||||||
static const ssl_ciphersuite_t ciphersuite_definitions[] =
|
static const ssl_ciphersuite_t ciphersuite_definitions[] =
|
||||||
{
|
{
|
||||||
#if defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
|
#if defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
|
||||||
@ -1679,6 +1675,11 @@ static const ssl_ciphersuite_t ciphersuite_definitions[] =
|
|||||||
{ 0, "", 0, 0, 0, 0, 0, 0, 0, 0 }
|
{ 0, "", 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define MAX_CIPHERSUITES sizeof( ciphersuite_definitions ) / \
|
||||||
|
sizeof( ciphersuite_definitions[0] )
|
||||||
|
static int supported_ciphersuites[MAX_CIPHERSUITES];
|
||||||
|
static int supported_init = 0;
|
||||||
|
|
||||||
const int *ssl_list_ciphersuites( void )
|
const int *ssl_list_ciphersuites( void )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -1687,21 +1688,21 @@ const int *ssl_list_ciphersuites( void )
|
|||||||
*/
|
*/
|
||||||
if( supported_init == 0 )
|
if( supported_init == 0 )
|
||||||
{
|
{
|
||||||
const int *p = ciphersuite_preference;
|
const int *p;
|
||||||
int *q = supported_ciphersuites;
|
int *q;
|
||||||
size_t i;
|
|
||||||
size_t max = sizeof(supported_ciphersuites) / sizeof(int);
|
|
||||||
|
|
||||||
for( i = 0; i < max - 1 && p[i] != 0; i++ )
|
for( p = ciphersuite_preference, q = supported_ciphersuites;
|
||||||
|
*p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
|
||||||
|
p++ )
|
||||||
{
|
{
|
||||||
#if defined(POLARSSL_REMOVE_ARC4_CIPHERSUITES)
|
#if defined(POLARSSL_REMOVE_ARC4_CIPHERSUITES)
|
||||||
const ssl_ciphersuite_t *cs_info;
|
const ssl_ciphersuite_t *cs_info;
|
||||||
if( ( cs_info = ssl_ciphersuite_from_id( p[i] ) ) != NULL &&
|
if( ( cs_info = ssl_ciphersuite_from_id( *p ) ) != NULL &&
|
||||||
cs_info->cipher != POLARSSL_CIPHER_ARC4_128 )
|
cs_info->cipher != POLARSSL_CIPHER_ARC4_128 )
|
||||||
#else
|
#else
|
||||||
if( ssl_ciphersuite_from_id( p[i] ) != NULL )
|
if( ssl_ciphersuite_from_id( *p ) != NULL )
|
||||||
#endif
|
#endif
|
||||||
*(q++) = p[i];
|
*(q++) = *p;
|
||||||
}
|
}
|
||||||
*q = 0;
|
*q = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user