| 139 | |
| 140 | |
| 141 | apr_status_t md_crypt_init(apr_pool_t *pool) |
| 142 | { |
| 143 | (void)pool; |
| 144 | |
| 145 | if (!initialized) { |
| 146 | int pid = getpid(); |
| 147 | |
| 148 | ERR_load_crypto_strings(); |
| 149 | OpenSSL_add_all_algorithms(); |
| 150 | |
| 151 | md_log_perror(MD_LOG_MARK, MD_LOG_TRACE2, 0, pool, "initializing RAND"); |
| 152 | while (!RAND_status()) { |
| 153 | seed_RAND(pid); |
| 154 | } |
| 155 | |
| 156 | initialized = 1; |
| 157 | } |
| 158 | return APR_SUCCESS; |
| 159 | } |
| 160 | |
| 161 | static apr_status_t fwrite_buffer(void *baton, apr_file_t *f, apr_pool_t *p) |
| 162 | { |
no test coverage detected