Handle diffrences between libhcrypto and libcrypto.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17111 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		
							
								
								
									
										21
									
								
								kdc/pkinit.c
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								kdc/pkinit.c
									
									
									
									
									
								
							| @@ -190,9 +190,7 @@ generate_dh_keyblock(krb5_context context, pk_client_params *client_params, | |||||||
|     memset(&key, 0, sizeof(key)); |     memset(&key, 0, sizeof(key)); | ||||||
|  |  | ||||||
|     if (!DH_generate_key(client_params->dh)) { |     if (!DH_generate_key(client_params->dh)) { | ||||||
| 	krb5_set_error_string(context, "Can't generate Diffie-Hellman " | 	krb5_set_error_string(context, "Can't generate Diffie-Hellman keys"); | ||||||
| 			      "keys (%s)", |  | ||||||
| 			      ERR_error_string(ERR_get_error(), NULL)); |  | ||||||
| 	ret = KRB5KRB_ERR_GENERIC; | 	ret = KRB5KRB_ERR_GENERIC; | ||||||
| 	goto out; | 	goto out; | ||||||
|     } |     } | ||||||
| @@ -219,8 +217,7 @@ generate_dh_keyblock(krb5_context context, pk_client_params *client_params, | |||||||
| 				   client_params->dh_public_key, | 				   client_params->dh_public_key, | ||||||
| 				   client_params->dh); | 				   client_params->dh); | ||||||
|     if (dh_gen_keylen == -1) { |     if (dh_gen_keylen == -1) { | ||||||
| 	krb5_set_error_string(context, "Can't compute Diffie-Hellman key (%s)", | 	krb5_set_error_string(context, "Can't compute Diffie-Hellman key"); | ||||||
| 			      ERR_error_string(ERR_get_error(), NULL)); |  | ||||||
| 	ret = KRB5KRB_ERR_GENERIC; | 	ret = KRB5KRB_ERR_GENERIC; | ||||||
| 	goto out; | 	goto out; | ||||||
|     } |     } | ||||||
| @@ -250,7 +247,7 @@ integer_to_BN(krb5_context context, const char *field, heim_integer *f) | |||||||
| 	krb5_set_error_string(context, "PKINIT: parsing BN failed %s", field); | 	krb5_set_error_string(context, "PKINIT: parsing BN failed %s", field); | ||||||
| 	return NULL; | 	return NULL; | ||||||
|     } |     } | ||||||
|     bn->neg = f->negative; |     BN_set_negative(bn, f->negative); | ||||||
|     return bn; |     return bn; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -305,8 +302,7 @@ get_dh_param(krb5_context context, | |||||||
|  |  | ||||||
|     dh = DH_new(); |     dh = DH_new(); | ||||||
|     if (dh == NULL) { |     if (dh == NULL) { | ||||||
| 	krb5_set_error_string(context, "Cannot create DH structure (%s)", | 	krb5_set_error_string(context, "Cannot create DH structure"); | ||||||
| 			      ERR_error_string(ERR_get_error(), NULL)); |  | ||||||
| 	ret = ENOMEM; | 	ret = ENOMEM; | ||||||
| 	goto out; | 	goto out; | ||||||
|     } |     } | ||||||
| @@ -342,9 +338,10 @@ get_dh_param(krb5_context context, | |||||||
| 	    goto out; | 	    goto out; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if (DH_check(dh, &dhret) != 1) { |  | ||||||
| 	krb5_set_error_string(context, "PKINIT DH data not ok: %s", |     if (DH_check_pubkey(dh, client_params->dh_public_key, &dhret) != 1 || | ||||||
| 			      ERR_error_string(ERR_get_error(), NULL)); | 	dhret != 0) { | ||||||
|  | 	krb5_set_error_string(context, "PKINIT DH data not ok"); | ||||||
| 	ret = KRB5_KDC_ERR_DH_KEY_PARAMETERS_NOT_ACCEPTED; | 	ret = KRB5_KDC_ERR_DH_KEY_PARAMETERS_NOT_ACCEPTED; | ||||||
| 	goto out; | 	goto out; | ||||||
|     } |     } | ||||||
| @@ -691,7 +688,7 @@ BN_to_integer(krb5_context context, BIGNUM *bn, heim_integer *integer) | |||||||
| 	return ENOMEM; | 	return ENOMEM; | ||||||
|     } |     } | ||||||
|     BN_bn2bin(bn, integer->data); |     BN_bn2bin(bn, integer->data); | ||||||
|     integer->negative = bn->neg; |     integer->negative = BN_is_negative(bn); | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Love Hörnquist Åstrand
					Love Hörnquist Åstrand