mirror of
https://github.com/yuzu-emu/mbedtls
synced 2024-11-24 14:38:39 +00:00
Store our role in the context
This commit is contained in:
parent
614bd5e919
commit
6449391852
2 changed files with 13 additions and 2 deletions
|
@ -30,10 +30,16 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
MBEDTLS_ECJPAKE_CLIENT,
|
||||||
|
MBEDTLS_ECJPAKE_SERVER,
|
||||||
|
} mbedtls_ecjpake_role;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
const mbedtls_md_info_t *md_info; /**< Hash to use */
|
const mbedtls_md_info_t *md_info; /**< Hash to use */
|
||||||
mbedtls_ecp_group grp; /**< Elliptic curve */
|
mbedtls_ecp_group grp; /**< Elliptic curve */
|
||||||
|
mbedtls_ecjpake_role role; /**< Are we client or server? */
|
||||||
|
|
||||||
mbedtls_ecp_point X1; /**< Public key one */
|
mbedtls_ecp_point X1; /**< Public key one */
|
||||||
mbedtls_ecp_point X2; /**< Public key two */
|
mbedtls_ecp_point X2; /**< Public key two */
|
||||||
|
@ -62,6 +68,7 @@ void mbedtls_ecjpake_init( mbedtls_ecjpake_context *ctx );
|
||||||
* standard are MBEDTLS_MD_SHA256/MBEDTLS_ECP_DP_SECP256R1.
|
* standard are MBEDTLS_MD_SHA256/MBEDTLS_ECP_DP_SECP256R1.
|
||||||
*
|
*
|
||||||
* \param ctx context to set up
|
* \param ctx context to set up
|
||||||
|
* \param role Our role: client or server
|
||||||
* \param hash hash function to use (MBEDTLS_MD_XXX)
|
* \param hash hash function to use (MBEDTLS_MD_XXX)
|
||||||
* \param curve elliptic curve identifier (MBEDTLS_ECP_DP_XXX)
|
* \param curve elliptic curve identifier (MBEDTLS_ECP_DP_XXX)
|
||||||
* \param secret shared secret
|
* \param secret shared secret
|
||||||
|
@ -71,6 +78,7 @@ void mbedtls_ecjpake_init( mbedtls_ecjpake_context *ctx );
|
||||||
* a negative error code otherwise
|
* a negative error code otherwise
|
||||||
*/
|
*/
|
||||||
int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx,
|
int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx,
|
||||||
|
mbedtls_ecjpake_role role,
|
||||||
mbedtls_md_type_t hash,
|
mbedtls_md_type_t hash,
|
||||||
mbedtls_ecp_group_id curve,
|
mbedtls_ecp_group_id curve,
|
||||||
const unsigned char *secret,
|
const unsigned char *secret,
|
||||||
|
|
|
@ -84,6 +84,7 @@ void mbedtls_ecjpake_free( mbedtls_ecjpake_context *ctx )
|
||||||
* Setup context
|
* Setup context
|
||||||
*/
|
*/
|
||||||
int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx,
|
int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx,
|
||||||
|
mbedtls_ecjpake_role role,
|
||||||
mbedtls_md_type_t hash,
|
mbedtls_md_type_t hash,
|
||||||
mbedtls_ecp_group_id curve,
|
mbedtls_ecp_group_id curve,
|
||||||
const unsigned char *secret,
|
const unsigned char *secret,
|
||||||
|
@ -91,6 +92,8 @@ int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx,
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
ctx->role = role;
|
||||||
|
|
||||||
if( ( ctx->md_info = mbedtls_md_info_from_type( hash ) ) == NULL )
|
if( ( ctx->md_info = mbedtls_md_info_from_type( hash ) ) == NULL )
|
||||||
return( MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE );
|
return( MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE );
|
||||||
|
|
||||||
|
@ -932,12 +935,12 @@ int mbedtls_ecjpake_self_test( int verbose )
|
||||||
if( verbose != 0 )
|
if( verbose != 0 )
|
||||||
mbedtls_printf( " ECJPAKE test #0 (setup): " );
|
mbedtls_printf( " ECJPAKE test #0 (setup): " );
|
||||||
|
|
||||||
TEST_ASSERT( mbedtls_ecjpake_setup( &cli,
|
TEST_ASSERT( mbedtls_ecjpake_setup( &cli, MBEDTLS_ECJPAKE_CLIENT,
|
||||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1,
|
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1,
|
||||||
ecjpake_test_password,
|
ecjpake_test_password,
|
||||||
sizeof( ecjpake_test_password ) ) == 0 );
|
sizeof( ecjpake_test_password ) ) == 0 );
|
||||||
|
|
||||||
TEST_ASSERT( mbedtls_ecjpake_setup( &srv,
|
TEST_ASSERT( mbedtls_ecjpake_setup( &srv, MBEDTLS_ECJPAKE_SERVER,
|
||||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1,
|
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1,
|
||||||
ecjpake_test_password,
|
ecjpake_test_password,
|
||||||
sizeof( ecjpake_test_password ) ) == 0 );
|
sizeof( ecjpake_test_password ) ) == 0 );
|
||||||
|
|
Loading…
Reference in a new issue