Prepare for ECDH point blinding just in case
diff --git a/include/polarssl/ecdh.h b/include/polarssl/ecdh.h
index 08de72c..0fa2dfa 100644
--- a/include/polarssl/ecdh.h
+++ b/include/polarssl/ecdh.h
@@ -44,6 +44,9 @@
ecp_point Qp; /*!< peer's public value */
mpi z; /*!< shared secret */
int point_format; /*!< format for point export */
+ ecp_point Vi; /*!< blinding value (for later) */
+ ecp_point Vf; /*!< un-blinding value (for later) */
+ mpi _d; /*!< previous d */
}
ecdh_context;
diff --git a/library/ecdh.c b/library/ecdh.c
index 8ef02f5..050f99d 100644
--- a/library/ecdh.c
+++ b/library/ecdh.c
@@ -85,12 +85,7 @@
*/
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 );
- ctx->point_format = POLARSSL_ECP_PF_UNCOMPRESSED;
+ memset( ctx, 0, sizeof( ecdh_context ) );
}
/*
@@ -106,6 +101,9 @@
ecp_point_free( &ctx->Q );
ecp_point_free( &ctx->Qp );
mpi_free ( &ctx->z );
+ ecp_point_free( &ctx->Vi );
+ ecp_point_free( &ctx->Vf );
+ mpi_free ( &ctx->_d );
}
/*