Add checks for private parameter in mbedtls_ecdsa_sign()
diff --git a/library/ecdsa.c b/library/ecdsa.c
index 4156f3c..8892317 100644
--- a/library/ecdsa.c
+++ b/library/ecdsa.c
@@ -81,6 +81,10 @@
if( grp->N.p == NULL )
return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA );
+ /* Make sure d is in range 1..n-1 */
+ if( mbedtls_mpi_cmp_int( d, 1 ) < 0 || mbedtls_mpi_cmp_mpi( d, &grp->N ) >= 0 )
+ return( MBEDTLS_ERR_ECP_INVALID_KEY );
+
mbedtls_ecp_point_init( &R );
mbedtls_mpi_init( &k ); mbedtls_mpi_init( &e ); mbedtls_mpi_init( &t );