mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-05-01 23:26:25 +00:00
Create ecdh_context structure
This commit is contained in:
parent
98f51815d6
commit
63533e44c2
|
@ -29,6 +29,19 @@
|
||||||
|
|
||||||
#include "polarssl/ecp.h"
|
#include "polarssl/ecp.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief ECDH context structure
|
||||||
|
*/
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
ecp_group grp; /*!< ellipitic curve used */
|
||||||
|
mpi d; /*!< our secret value */
|
||||||
|
ecp_point Q; /*!< our public value */
|
||||||
|
ecp_point Qp; /*!< peer's public value */
|
||||||
|
mpi z; /*!< shared secret */
|
||||||
|
}
|
||||||
|
ecdh_context;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
@ -63,6 +76,20 @@ int ecdh_gen_public( const ecp_group *grp, mpi *d, ecp_point *Q,
|
||||||
int ecdh_compute_shared( const ecp_group *grp, mpi *z,
|
int ecdh_compute_shared( const ecp_group *grp, mpi *z,
|
||||||
const ecp_point *Q, const mpi *d );
|
const ecp_point *Q, const mpi *d );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Initialize context
|
||||||
|
*
|
||||||
|
* \param ctx Context to initialize
|
||||||
|
*/
|
||||||
|
void ecdh_init( ecdh_context *ctx );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Free context
|
||||||
|
*
|
||||||
|
* \param ctx Context to free
|
||||||
|
*/
|
||||||
|
void ecdh_free( ecdh_context *ctx );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Checkup routine
|
* \brief Checkup routine
|
||||||
*
|
*
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
* References:
|
* References:
|
||||||
*
|
*
|
||||||
* SEC1 http://www.secg.org/index.php?action=secg,docs_secg
|
* SEC1 http://www.secg.org/index.php?action=secg,docs_secg
|
||||||
|
* RFC 4492
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "polarssl/config.h"
|
#include "polarssl/config.h"
|
||||||
|
@ -74,6 +75,34 @@ cleanup:
|
||||||
return( ret );
|
return( ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize context
|
||||||
|
*/
|
||||||
|
void ecdh_init( ecdh_context *ctx )
|
||||||
|
{
|
||||||
|
ecp_group_init( &ctx->grp );
|
||||||
|
mpi_init ( &ctx->d );
|
||||||
|
ecp_point_init( &ctx->Q );
|
||||||
|
ecp_point_init( &ctx->Qp );
|
||||||
|
mpi_init ( &ctx->z );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Free context
|
||||||
|
*/
|
||||||
|
void ecdh_free( ecdh_context *ctx )
|
||||||
|
{
|
||||||
|
if( ctx == NULL )
|
||||||
|
return;
|
||||||
|
|
||||||
|
ecp_group_free( &ctx->grp );
|
||||||
|
mpi_free ( &ctx->d );
|
||||||
|
ecp_point_free( &ctx->Q );
|
||||||
|
ecp_point_free( &ctx->Qp );
|
||||||
|
mpi_free ( &ctx->z );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(POLARSSL_SELF_TEST)
|
#if defined(POLARSSL_SELF_TEST)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue