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)