mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-02-21 15:41:00 +00:00
Add human-friendly name in ecp_curve_info
This commit is contained in:
parent
803bb312a3
commit
56cd319f0e
@ -68,9 +68,10 @@ typedef enum
|
|||||||
*/
|
*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
ecp_group_id grp_id; /*!< Internal identifier */
|
ecp_group_id grp_id; /*!< Internal identifier */
|
||||||
uint16_t name; /*!< TLS NamedCurve value */
|
uint16_t tls_id; /*!< TLS NamedCurve identifier */
|
||||||
uint16_t size; /*!< Curve size in bits */
|
uint16_t size; /*!< Curve size in bits */
|
||||||
|
const char *name; /*!< Human-friendly name */
|
||||||
} ecp_curve_info;
|
} ecp_curve_info;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -70,27 +70,28 @@ unsigned long add_count, dbl_count;
|
|||||||
/*
|
/*
|
||||||
* List of supported curves:
|
* List of supported curves:
|
||||||
* - internal ID
|
* - internal ID
|
||||||
* - TLS NamedCurve number (RFC 4492 section 5.1.1)
|
* - TLS NamedCurve ID (RFC 4492 section 5.1.1)
|
||||||
* - size in bits
|
* - size in bits
|
||||||
|
* - readeble name
|
||||||
*/
|
*/
|
||||||
const ecp_curve_info ecp_supported_curves[] =
|
const ecp_curve_info ecp_supported_curves[] =
|
||||||
{
|
{
|
||||||
#if defined(POLARSSL_ECP_DP_SECP521R1_ENABLED)
|
#if defined(POLARSSL_ECP_DP_SECP521R1_ENABLED)
|
||||||
{ POLARSSL_ECP_DP_SECP521R1, 25, 521, },
|
{ POLARSSL_ECP_DP_SECP521R1, 25, 521, "secp521r1" },
|
||||||
#endif
|
#endif
|
||||||
#if defined(POLARSSL_ECP_DP_SECP384R1_ENABLED)
|
#if defined(POLARSSL_ECP_DP_SECP384R1_ENABLED)
|
||||||
{ POLARSSL_ECP_DP_SECP384R1, 24, 384, },
|
{ POLARSSL_ECP_DP_SECP384R1, 24, 384, "secp384r1" },
|
||||||
#endif
|
#endif
|
||||||
#if defined(POLARSSL_ECP_DP_SECP256R1_ENABLED)
|
#if defined(POLARSSL_ECP_DP_SECP256R1_ENABLED)
|
||||||
{ POLARSSL_ECP_DP_SECP256R1, 23, 256, },
|
{ POLARSSL_ECP_DP_SECP256R1, 23, 256, "secp256r1" },
|
||||||
#endif
|
#endif
|
||||||
#if defined(POLARSSL_ECP_DP_SECP224R1_ENABLED)
|
#if defined(POLARSSL_ECP_DP_SECP224R1_ENABLED)
|
||||||
{ POLARSSL_ECP_DP_SECP224R1, 21, 224, },
|
{ POLARSSL_ECP_DP_SECP224R1, 21, 224, "secp224r1" },
|
||||||
#endif
|
#endif
|
||||||
#if defined(POLARSSL_ECP_DP_SECP192R1_ENABLED)
|
#if defined(POLARSSL_ECP_DP_SECP192R1_ENABLED)
|
||||||
{ POLARSSL_ECP_DP_SECP192R1, 19, 192, },
|
{ POLARSSL_ECP_DP_SECP192R1, 19, 192, "secp192r1" },
|
||||||
#endif
|
#endif
|
||||||
{ POLARSSL_ECP_DP_NONE, 0, 0 },
|
{ POLARSSL_ECP_DP_NONE, 0, 0, NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -741,7 +742,7 @@ int ecp_tls_write_group( const ecp_group *grp, size_t *olen,
|
|||||||
/*
|
/*
|
||||||
* Get the internal identifer from the TLS name
|
* Get the internal identifer from the TLS name
|
||||||
*/
|
*/
|
||||||
ecp_group_id ecp_grp_id_from_named_curve( uint16_t name )
|
ecp_group_id ecp_grp_id_from_named_curve( uint16_t tls_id )
|
||||||
{
|
{
|
||||||
const ecp_curve_info *curve_info;
|
const ecp_curve_info *curve_info;
|
||||||
|
|
||||||
@ -749,7 +750,7 @@ ecp_group_id ecp_grp_id_from_named_curve( uint16_t name )
|
|||||||
curve_info->grp_id != POLARSSL_ECP_DP_NONE;
|
curve_info->grp_id != POLARSSL_ECP_DP_NONE;
|
||||||
curve_info++ )
|
curve_info++ )
|
||||||
{
|
{
|
||||||
if( curve_info->name == name )
|
if( curve_info->tls_id == tls_id )
|
||||||
return( curve_info->grp_id );
|
return( curve_info->grp_id );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -759,7 +760,7 @@ ecp_group_id ecp_grp_id_from_named_curve( uint16_t name )
|
|||||||
/*
|
/*
|
||||||
* Get the TLS name for the internal identifer
|
* Get the TLS name for the internal identifer
|
||||||
*/
|
*/
|
||||||
uint16_t ecp_named_curve_from_grp_id( ecp_group_id id )
|
uint16_t ecp_named_curve_from_grp_id( ecp_group_id grp_id )
|
||||||
{
|
{
|
||||||
const ecp_curve_info *curve_info;
|
const ecp_curve_info *curve_info;
|
||||||
|
|
||||||
@ -767,8 +768,8 @@ uint16_t ecp_named_curve_from_grp_id( ecp_group_id id )
|
|||||||
curve_info->grp_id != POLARSSL_ECP_DP_NONE;
|
curve_info->grp_id != POLARSSL_ECP_DP_NONE;
|
||||||
curve_info++ )
|
curve_info++ )
|
||||||
{
|
{
|
||||||
if( curve_info->grp_id == id )
|
if( curve_info->grp_id == grp_id )
|
||||||
return( curve_info->name );
|
return( curve_info->tls_id );
|
||||||
}
|
}
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
|
@ -244,8 +244,8 @@ static void ssl_write_supported_elliptic_curves_ext( ssl_context *ssl,
|
|||||||
curve->grp_id != POLARSSL_ECP_DP_NONE;
|
curve->grp_id != POLARSSL_ECP_DP_NONE;
|
||||||
curve++ )
|
curve++ )
|
||||||
{
|
{
|
||||||
elliptic_curve_list[elliptic_curve_len++] = curve->name >> 8;
|
elliptic_curve_list[elliptic_curve_len++] = curve->tls_id >> 8;
|
||||||
elliptic_curve_list[elliptic_curve_len++] = curve->name & 0xFF;
|
elliptic_curve_list[elliptic_curve_len++] = curve->tls_id & 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( elliptic_curve_len == 0 )
|
if( elliptic_curve_len == 0 )
|
||||||
|
@ -456,11 +456,15 @@ int main( int argc, char *argv[] )
|
|||||||
if( ecdsa_genkey( &ecdsa, curve_info->grp_id, myrand, NULL ) != 0 )
|
if( ecdsa_genkey( &ecdsa, curve_info->grp_id, myrand, NULL ) != 0 )
|
||||||
exit( 1 );
|
exit( 1 );
|
||||||
|
|
||||||
snprintf( title, sizeof( title ), "ECDSA-%d",
|
snprintf( title, sizeof( title ), "ECDSA-%s",
|
||||||
(int) curve_info->size );
|
curve_info->name );
|
||||||
TIME_PUBLIC( title, "sign",
|
TIME_PUBLIC( title, "sign",
|
||||||
ret = ecdsa_write_signature( &ecdsa, buf, curve_info->size,
|
ret = ecdsa_write_signature( &ecdsa, buf, curve_info->size,
|
||||||
tmp, &sig_len, myrand, NULL ) );
|
tmp, &sig_len, myrand, NULL ) );
|
||||||
|
|
||||||
|
TIME_PUBLIC( title, "verify",
|
||||||
|
ret = ecdsa_read_signature( &ecdsa, buf, curve_info->size,
|
||||||
|
tmp, sig_len ) );
|
||||||
|
|
||||||
ecdsa_free( &ecdsa );
|
ecdsa_free( &ecdsa );
|
||||||
}
|
}
|
||||||
@ -488,16 +492,16 @@ int main( int argc, char *argv[] )
|
|||||||
exit( 1 );
|
exit( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf( title, sizeof( title ), "ECDHE-%d",
|
snprintf( title, sizeof( title ), "ECDHE-%s",
|
||||||
(int) curve_info->size );
|
curve_info->name );
|
||||||
TIME_PUBLIC( title, "handshake",
|
TIME_PUBLIC( title, "handshake",
|
||||||
ret |= ecdh_make_public( &ecdh, &olen, buf, sizeof( buf),
|
ret |= ecdh_make_public( &ecdh, &olen, buf, sizeof( buf),
|
||||||
myrand, NULL );
|
myrand, NULL );
|
||||||
ret |= ecdh_calc_secret( &ecdh, &olen, buf, sizeof( buf ),
|
ret |= ecdh_calc_secret( &ecdh, &olen, buf, sizeof( buf ),
|
||||||
myrand, NULL ) );
|
myrand, NULL ) );
|
||||||
|
|
||||||
snprintf( title, sizeof( title ), "ECDH-%d",
|
snprintf( title, sizeof( title ), "ECDH-%s",
|
||||||
(int) curve_info->size );
|
curve_info->name );
|
||||||
TIME_PUBLIC( title, "handshake",
|
TIME_PUBLIC( title, "handshake",
|
||||||
ret |= ecdh_calc_secret( &ecdh, &olen, buf, sizeof( buf ),
|
ret |= ecdh_calc_secret( &ecdh, &olen, buf, sizeof( buf ),
|
||||||
myrand, NULL ) );
|
myrand, NULL ) );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user