Added Ephemeral Elliptic Curve Diffie Hellman ciphersuites to SSL/TLS
Made all modifications to include Ephemeral Elliptic Curve Diffie
Hellman ciphersuites into the existing SSL/TLS modules. All basic
handling of the ECDHE-ciphersuites (TLS_ECDHE_RSA_WITH_NULL_SHA,
TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA)
has been included.
diff --git a/library/ecdh.c b/library/ecdh.c
index e30ae3a..df21eac 100644
--- a/library/ecdh.c
+++ b/library/ecdh.c
@@ -212,8 +212,11 @@
!= 0 )
return( ret );
- *olen = mpi_size( &ctx->z );
- return mpi_write_binary( &ctx->z, buf, blen );
+ if( mpi_size( &ctx->z ) > blen )
+ return( POLARSSL_ERR_ECP_BAD_INPUT_DATA );
+
+ *olen = ctx->grp.nbits / 8 + ( ( ctx->grp.nbits % 8 ) != 0 );
+ return mpi_write_binary( &ctx->z, buf, *olen );
}