use new addressless, convert pa-pac option to use the same tri-state
option as the new addressless option. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17985 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -52,7 +52,7 @@ typedef struct krb5_get_init_creds_ctx { | |||||||
|     const char *password; |     const char *password; | ||||||
|     krb5_s2k_proc key_proc; |     krb5_s2k_proc key_proc; | ||||||
|  |  | ||||||
|     krb5_get_init_creds_req_pac req_pac; |     krb5_get_init_creds_tristate req_pac; | ||||||
|  |  | ||||||
|     krb5_pk_init_ctx pk_init_ctx; |     krb5_pk_init_ctx pk_init_ctx; | ||||||
| } krb5_get_init_creds_ctx; | } krb5_get_init_creds_ctx; | ||||||
| @@ -256,6 +256,8 @@ print_expire (krb5_context context, | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | static krb5_addresses no_addrs = { 0, NULL }; | ||||||
|  |  | ||||||
| static krb5_error_code | static krb5_error_code | ||||||
| get_init_creds_common(krb5_context context, | get_init_creds_common(krb5_context context, | ||||||
| 		      krb5_principal client, | 		      krb5_principal client, | ||||||
| @@ -284,7 +286,7 @@ get_init_creds_common(krb5_context context, | |||||||
| 	ctx->req_pac = options->opt_private->req_pac; | 	ctx->req_pac = options->opt_private->req_pac; | ||||||
| 	ctx->pk_init_ctx = options->opt_private->pk_init_ctx; | 	ctx->pk_init_ctx = options->opt_private->pk_init_ctx; | ||||||
|     } else |     } else | ||||||
| 	ctx->req_pac = KRB5_PA_PAC_DONT_CARE; | 	ctx->req_pac = KRB5_INIT_CREDS_TRISTATE_UNSET; | ||||||
|  |  | ||||||
|     if (ctx->key_proc == NULL) |     if (ctx->key_proc == NULL) | ||||||
| 	ctx->key_proc = default_s2k_func; | 	ctx->key_proc = default_s2k_func; | ||||||
| @@ -313,8 +315,30 @@ get_init_creds_common(krb5_context context, | |||||||
| 	ctx->flags.b.postdated = 1; | 	ctx->flags.b.postdated = 1; | ||||||
|     if (ctx->cred.times.renew_till) |     if (ctx->cred.times.renew_till) | ||||||
| 	ctx->flags.b.renewable = 1; | 	ctx->flags.b.renewable = 1; | ||||||
|     if (options->flags & KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST) |     if (options->flags & KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST) { | ||||||
| 	ctx->addrs = options->address_list; | 	ctx->addrs = options->address_list; | ||||||
|  | 	printf("list\n"); | ||||||
|  |     } else if (options->opt_private) { | ||||||
|  | 	printf("addresslessness\n"); | ||||||
|  | 	switch (options->opt_private->addressless) { | ||||||
|  | 	case KRB5_INIT_CREDS_TRISTATE_UNSET: | ||||||
|  | #if KRB5_ADDRESSLESS_DEFAULT == TRUE | ||||||
|  | 	    ctx->addrs = &no_addrs; | ||||||
|  | #else | ||||||
|  | 	    ctx->addrs = NULL; | ||||||
|  | #endif | ||||||
|  | 	printf("unset\n"); | ||||||
|  | 	    break; | ||||||
|  | 	case KRB5_INIT_CREDS_TRISTATE_FALSE: | ||||||
|  | 	    ctx->addrs = NULL; | ||||||
|  | 	printf("false\n"); | ||||||
|  | 	    break; | ||||||
|  | 	case KRB5_INIT_CREDS_TRISTATE_TRUE: | ||||||
|  | 	    ctx->addrs = &no_addrs; | ||||||
|  | 	printf("true\n"); | ||||||
|  | 	    break; | ||||||
|  | 	} | ||||||
|  |     } | ||||||
|     if (options->flags & KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST) { |     if (options->flags & KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST) { | ||||||
| 	etypes = malloc((options->etype_list_length + 1) | 	etypes = malloc((options->etype_list_length + 1) | ||||||
| 			* sizeof(krb5_enctype)); | 			* sizeof(krb5_enctype)); | ||||||
| @@ -1029,12 +1053,12 @@ pa_data_add_pac_request(krb5_context context, | |||||||
|     void *buf; |     void *buf; | ||||||
|      |      | ||||||
|     switch (ctx->req_pac) { |     switch (ctx->req_pac) { | ||||||
|     case KRB5_PA_PAC_DONT_CARE: |     case KRB5_INIT_CREDS_TRISTATE_UNSET: | ||||||
| 	return 0; /* don't bother */ | 	return 0; /* don't bother */ | ||||||
|     case KRB5_PA_PAC_REQ_TRUE: |     case KRB5_INIT_CREDS_TRISTATE_TRUE: | ||||||
| 	req.include_pac = 1; | 	req.include_pac = 1; | ||||||
| 	break; | 	break; | ||||||
|     case KRB5_PA_PAC_REQ_FALSE: |     case KRB5_INIT_CREDS_TRISTATE_FALSE: | ||||||
| 	req.include_pac = 0; | 	req.include_pac = 0; | ||||||
|     }	 |     }	 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -171,10 +171,10 @@ struct _krb5_krb_auth_data; | |||||||
| #define KRB5_BUFSIZ 1024 | #define KRB5_BUFSIZ 1024 | ||||||
|  |  | ||||||
| typedef enum { | typedef enum { | ||||||
|     KRB5_PA_PAC_DONT_CARE = 0,  |     KRB5_INIT_CREDS_TRISTATE_UNSET = 0, | ||||||
|     KRB5_PA_PAC_REQ_TRUE, |     KRB5_INIT_CREDS_TRISTATE_TRUE, | ||||||
|     KRB5_PA_PAC_REQ_FALSE |     KRB5_INIT_CREDS_TRISTATE_FALSE | ||||||
| } krb5_get_init_creds_req_pac; | } krb5_get_init_creds_tristate; | ||||||
|  |  | ||||||
| struct _krb5_get_init_creds_opt_private { | struct _krb5_get_init_creds_opt_private { | ||||||
|     int refcount; |     int refcount; | ||||||
| @@ -182,12 +182,12 @@ struct _krb5_get_init_creds_opt_private { | |||||||
|     const char *password; |     const char *password; | ||||||
|     krb5_s2k_proc key_proc; |     krb5_s2k_proc key_proc; | ||||||
|     /* PA_PAC_REQUEST */ |     /* PA_PAC_REQUEST */ | ||||||
|     krb5_get_init_creds_req_pac req_pac; |     krb5_get_init_creds_tristate req_pac; | ||||||
|     /* PKINIT */ |     /* PKINIT */ | ||||||
|     krb5_pk_init_ctx pk_init_ctx; |     krb5_pk_init_ctx pk_init_ctx; | ||||||
|     int canonicalize; |     int canonicalize; | ||||||
|     /* */ |  | ||||||
|     KRB_ERROR *error; |     KRB_ERROR *error; | ||||||
|  |     krb5_get_init_creds_tristate addressless; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Love Hörnquist Åstrand
					Love Hörnquist Åstrand