move krb5_generate_random() to krb5_init_context() and document (in doxygen) why its called
This commit is contained in:
		| @@ -97,15 +97,6 @@ init_context_from_config_file(krb5_context context) | |||||||
|     const char * tmp; |     const char * tmp; | ||||||
|     char **s; |     char **s; | ||||||
|     krb5_enctype *tmptypes; |     krb5_enctype *tmptypes; | ||||||
|     uint8_t rnd; |  | ||||||
|  |  | ||||||
|     /* |  | ||||||
|      * Pick one random character to make sure our random-ness source |  | ||||||
|      * is alive. |  | ||||||
|      */ |  | ||||||
|     ret = krb5_generate_random(&rnd, sizeof(rnd)); |  | ||||||
|     if (ret) |  | ||||||
| 	return ret; |  | ||||||
|  |  | ||||||
|     INIT_FIELD(context, time, max_skew, 5 * 60, "clockskew"); |     INIT_FIELD(context, time, max_skew, 5 * 60, "clockskew"); | ||||||
|     INIT_FIELD(context, time, kdc_timeout, 30, "kdc_timeout"); |     INIT_FIELD(context, time, kdc_timeout, 30, "kdc_timeout"); | ||||||
| @@ -404,7 +395,8 @@ init_context_once(void *ctx) | |||||||
|  * @return Returns 0 to indicate success.  Otherwise an errno code is |  * @return Returns 0 to indicate success.  Otherwise an errno code is | ||||||
|  * returned.  Failure means either that something bad happened during |  * returned.  Failure means either that something bad happened during | ||||||
|  * initialization (typically ENOMEM) or that Kerberos should not be |  * initialization (typically ENOMEM) or that Kerberos should not be | ||||||
|  * used ENXIO. |  * used ENXIO. If the function returns HEIM_ERR_RANDOM_OFFLINE, the | ||||||
|  |  * random source is not available and later Kerberos calls might fail. | ||||||
|  * |  * | ||||||
|  * @ingroup krb5 |  * @ingroup krb5 | ||||||
|  */ |  */ | ||||||
| @@ -416,9 +408,23 @@ krb5_init_context(krb5_context *context) | |||||||
|     krb5_context p; |     krb5_context p; | ||||||
|     krb5_error_code ret; |     krb5_error_code ret; | ||||||
|     char **files; |     char **files; | ||||||
|  |     uint8_t rnd; | ||||||
|  |  | ||||||
|     *context = NULL; |     *context = NULL; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * krb5_init_context() will get one random byte to make sure our | ||||||
|  |      * random is alive.  Assumption is that once the non blocking | ||||||
|  |      * source allows us to pull bytes, its all seeded and allows us to | ||||||
|  |      * pull more bytes. | ||||||
|  |      * | ||||||
|  |      * Most Kerberos users calls krb5_init_context(), so this is | ||||||
|  |      * useful point where we can do the checking. | ||||||
|  |      */ | ||||||
|  |     ret = krb5_generate_random(&rnd, sizeof(rnd)); | ||||||
|  |     if (ret) | ||||||
|  | 	return ret; | ||||||
|  |  | ||||||
|     p = calloc(1, sizeof(*p)); |     p = calloc(1, sizeof(*p)); | ||||||
|     if(!p) |     if(!p) | ||||||
| 	return ENOMEM; | 	return ENOMEM; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Love Hornquist Astrand
					Love Hornquist Astrand