Add ecdsa_init and ecdsa_free
diff --git a/include/polarssl/ecdsa.h b/include/polarssl/ecdsa.h
index f6b1e78..e709b40 100644
--- a/include/polarssl/ecdsa.h
+++ b/include/polarssl/ecdsa.h
@@ -85,6 +85,20 @@
                   const ecp_point *Q, const mpi *r, const mpi *s);
 
 /**
+ * \brief           Initialize context
+ *
+ * \param ctx       Context to initialize
+ */
+void ecdsa_init( ecdsa_context *ctx );
+
+/**
+ * \brief           Free context
+ *
+ * \param ctx       Context to free
+ */
+void ecdsa_free( ecdsa_context *ctx );
+
+/**
  * \brief          Checkup routine
  *
  * \return         0 if successful, or 1 if the test failed
diff --git a/library/ecdsa.c b/library/ecdsa.c
index d683457..11b7f5e 100644
--- a/library/ecdsa.c
+++ b/library/ecdsa.c
@@ -174,6 +174,33 @@
     return( ret );
 }
 
+/*
+ * Initialize context
+ */
+void ecdsa_init( ecdsa_context *ctx )
+{
+    ecp_group_init( &ctx->grp );
+    mpi_init( &ctx->d );
+    ecp_point_init( &ctx->Q );
+    mpi_init( &ctx->r );
+    mpi_init( &ctx->s );
+    mpi_init( &ctx->d );
+    ctx->point_format = POLARSSL_ECP_PF_UNCOMPRESSED;
+}
+
+/*
+ * Free context
+ */
+void ecdsa_free( ecdsa_context *ctx )
+{
+    ecp_group_free( &ctx->grp );
+    mpi_free( &ctx->d );
+    ecp_point_free( &ctx->Q );
+    mpi_free( &ctx->r );
+    mpi_free( &ctx->s );
+    mpi_free( &ctx->d );
+    ctx->point_format = POLARSSL_ECP_PF_UNCOMPRESSED;
+}
 
 #if defined(POLARSSL_SELF_TEST)