mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
Consensus is that we should not use the scoreboard as a source of entropy.
Reviewed by: OtherBill, Justin, Madhu git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93652 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -515,7 +515,6 @@ typedef struct {
|
|||||||
char *szMutexFile;
|
char *szMutexFile;
|
||||||
apr_lock_t *pMutex;
|
apr_lock_t *pMutex;
|
||||||
apr_array_header_t *aRandSeed;
|
apr_array_header_t *aRandSeed;
|
||||||
int nScoreboardSize; /* used for builtin random seed */
|
|
||||||
apr_hash_t *tVHostKeys;
|
apr_hash_t *tVHostKeys;
|
||||||
apr_hash_t *tTmpKeys;
|
apr_hash_t *tTmpKeys;
|
||||||
void *pTmpKeys[SSL_TKPIDX_MAX];
|
void *pTmpKeys[SSL_TKPIDX_MAX];
|
||||||
|
@@ -163,11 +163,7 @@ int ssl_init_Module(apr_pool_t *p, apr_pool_t *plog,
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Seed the Pseudo Random Number Generator (PRNG)
|
* Seed the Pseudo Random Number Generator (PRNG)
|
||||||
*
|
|
||||||
* Note: scoreboard size must be fetched at init time because
|
|
||||||
* ap_calc_scoreboard_size() is not threadsafe
|
|
||||||
*/
|
*/
|
||||||
mc->nScoreboardSize = ap_calc_scoreboard_size();
|
|
||||||
ssl_rand_seed(s, p, SSL_RSCTX_STARTUP, "Init: ");
|
ssl_rand_seed(s, p, SSL_RSCTX_STARTUP, "Init: ");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -81,7 +81,6 @@ int ssl_rand_seed(server_rec *s, apr_pool_t *p, ssl_rsctx_t nCtx, char *prefix)
|
|||||||
int nReq, nDone;
|
int nReq, nDone;
|
||||||
apr_file_t *fp;
|
apr_file_t *fp;
|
||||||
int i, n, l;
|
int i, n, l;
|
||||||
int m;
|
|
||||||
|
|
||||||
mc = myModConfig(s);
|
mc = myModConfig(s);
|
||||||
nReq = 0;
|
nReq = 0;
|
||||||
@@ -155,21 +154,6 @@ int ssl_rand_seed(server_rec *s, apr_pool_t *p, ssl_rsctx_t nCtx, char *prefix)
|
|||||||
RAND_seed(stackdata+n, 128);
|
RAND_seed(stackdata+n, 128);
|
||||||
nDone += 128;
|
nDone += 128;
|
||||||
|
|
||||||
/*
|
|
||||||
* seed in data extracted from the current scoreboard
|
|
||||||
*
|
|
||||||
* XXX: this assumes that the entire scoreboard is
|
|
||||||
* allocated in one big block of memory that begins at
|
|
||||||
* the location pointed to by ap_scoreboard_image->global
|
|
||||||
*/
|
|
||||||
if (ap_scoreboard_image != NULL && mc->nScoreboardSize > 16)
|
|
||||||
{
|
|
||||||
m = ((mc->nScoreboardSize / 2) - 1);
|
|
||||||
n = ssl_rand_choosenum(0, m);
|
|
||||||
RAND_seed(
|
|
||||||
((unsigned char *)ap_scoreboard_image->global)+n, m);
|
|
||||||
nDone += m;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user