| 5441 | } |
| 5442 | |
| 5443 | AP_CORE_DECLARE(void) ap_init_rng(apr_pool_t *p) |
| 5444 | { |
| 5445 | unsigned char seed[8]; |
| 5446 | apr_status_t rv; |
| 5447 | rng = apr_random_standard_new(p); |
| 5448 | do { |
| 5449 | rv = apr_generate_random_bytes(seed, sizeof(seed)); |
| 5450 | if (rv != APR_SUCCESS) |
| 5451 | goto error; |
| 5452 | apr_random_add_entropy(rng, seed, sizeof(seed)); |
| 5453 | rv = apr_random_insecure_ready(rng); |
| 5454 | } while (rv == APR_ENOTENOUGHENTROPY); |
| 5455 | if (rv == APR_SUCCESS) |
| 5456 | return; |
| 5457 | error: |
| 5458 | ap_log_error(APLOG_MARK, APLOG_CRIT, rv, NULL, APLOGNO(00141) |
| 5459 | "Could not initialize random number generator"); |
| 5460 | exit(1); |
| 5461 | } |
| 5462 | |
| 5463 | AP_DECLARE(void) ap_random_insecure_bytes(void *buf, apr_size_t size) |
| 5464 | { |
no test coverage detected