diff --git a/include/polarssl/ecdh.h b/include/polarssl/ecdh.h
index ad13106..2f1e51d 100644
--- a/include/polarssl/ecdh.h
+++ b/include/polarssl/ecdh.h
@@ -29,6 +29,19 @@
 
 #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
 extern "C" {
 #endif
@@ -64,6 +77,20 @@
                          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
  *
  * \return         0 if successful, or 1 if the test failed
diff --git a/library/ecdh.c b/library/ecdh.c
index 1b4fcd3..0e2cfdf 100644
--- a/library/ecdh.c
+++ b/library/ecdh.c
@@ -27,6 +27,7 @@
  * References:
  *
  * SEC1 http://www.secg.org/index.php?action=secg,docs_secg
+ * RFC 4492
  */
 
 #include "polarssl/config.h"
@@ -74,6 +75,34 @@
     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)
 
