Change dhm_calc_secret() prototype
diff --git a/library/dhm.c b/library/dhm.c
index 0c65dfe..a5c3e90 100644
--- a/library/dhm.c
+++ b/library/dhm.c
@@ -249,10 +249,15 @@
* Derive and export the shared secret (G^Y)^X mod P
*/
int dhm_calc_secret( dhm_context *ctx,
- unsigned char *output, size_t *olen )
+ unsigned char *output, size_t *olen,
+ int (*f_rng)(void *, unsigned char *, size_t),
+ void *p_rng )
{
int ret;
+ (void) f_rng;
+ (void) p_rng;
+
if( ctx == NULL || *olen < ctx->len )
return( POLARSSL_ERR_DHM_BAD_INPUT_DATA );
diff --git a/library/ssl_cli.c b/library/ssl_cli.c
index 3b9d142..e751298 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -1713,7 +1713,8 @@
if( ( ret = dhm_calc_secret( &ssl->handshake->dhm_ctx,
ssl->handshake->premaster,
- &ssl->handshake->pmslen ) ) != 0 )
+ &ssl->handshake->pmslen,
+ ssl->f_rng, ssl->p_rng ) ) != 0 )
{
SSL_DEBUG_RET( 1, "dhm_calc_secret", ret );
return( ret );
@@ -1842,7 +1843,7 @@
*(p++) = (unsigned char)( ssl->handshake->dhm_ctx.len >> 8 );
*(p++) = (unsigned char)( ssl->handshake->dhm_ctx.len );
if( ( ret = dhm_calc_secret( &ssl->handshake->dhm_ctx,
- p, &n ) ) != 0 )
+ p, &n, ssl->f_rng, ssl->p_rng ) ) != 0 )
{
SSL_DEBUG_RET( 1, "dhm_calc_secret", ret );
return( ret );
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index adf5a62..f0936b4 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -2386,7 +2386,8 @@
if( ( ret = dhm_calc_secret( &ssl->handshake->dhm_ctx,
ssl->handshake->premaster,
- &ssl->handshake->pmslen ) ) != 0 )
+ &ssl->handshake->pmslen,
+ ssl->f_rng, ssl->p_rng ) ) != 0 )
{
SSL_DEBUG_RET( 1, "dhm_calc_secret", ret );
return( POLARSSL_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_CS );
@@ -2472,7 +2473,7 @@
n = ssl->handshake->dhm_ctx.len;
if( ( ret = dhm_calc_secret( &ssl->handshake->dhm_ctx,
- p, &n ) ) != 0 )
+ p, &n, ssl->f_rng, ssl->p_rng ) ) != 0 )
{
SSL_DEBUG_RET( 1, "dhm_calc_secret", ret );
return( POLARSSL_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_CS );