Move _krb5_pk_copy_error() within #ifdef (from Björn Schlögl) and
rename to pk_copy_error git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22775 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		@@ -91,7 +91,7 @@ struct krb5_pk_init_ctx_data {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
_krb5_pk_copy_error(krb5_context context,
 | 
					pk_copy_error(krb5_context context,
 | 
				
			||||||
	      hx509_context hx509ctx,
 | 
						      hx509_context hx509ctx,
 | 
				
			||||||
	      int hxret,
 | 
						      int hxret,
 | 
				
			||||||
	      const char *fmt,
 | 
						      const char *fmt,
 | 
				
			||||||
@@ -167,7 +167,7 @@ find_cert(krb5_context context, struct krb5_pk_identity *id,
 | 
				
			|||||||
    for (i = 0; i < sizeof(cf)/sizeof(cf[0]); i++) {
 | 
					    for (i = 0; i < sizeof(cf)/sizeof(cf[0]); i++) {
 | 
				
			||||||
	ret = hx509_query_match_eku(q, cf[i].oid);
 | 
						ret = hx509_query_match_eku(q, cf[i].oid);
 | 
				
			||||||
	if (ret) {
 | 
						if (ret) {
 | 
				
			||||||
	    _krb5_pk_copy_error(context, id->hx509ctx, ret, 
 | 
						    pk_copy_error(context, id->hx509ctx, ret, 
 | 
				
			||||||
				"Failed setting %s OID", cf[i].type);
 | 
									"Failed setting %s OID", cf[i].type);
 | 
				
			||||||
	    return ret;
 | 
						    return ret;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -175,7 +175,7 @@ find_cert(krb5_context context, struct krb5_pk_identity *id,
 | 
				
			|||||||
	ret = hx509_certs_find(id->hx509ctx, id->certs, q, cert);
 | 
						ret = hx509_certs_find(id->hx509ctx, id->certs, q, cert);
 | 
				
			||||||
	if (ret == 0)
 | 
						if (ret == 0)
 | 
				
			||||||
	    break;
 | 
						    break;
 | 
				
			||||||
	_krb5_pk_copy_error(context, id->hx509ctx, ret, 
 | 
						pk_copy_error(context, id->hx509ctx, ret, 
 | 
				
			||||||
			    "Failed cert for finding %s OID", cf[i].type);
 | 
								    "Failed cert for finding %s OID", cf[i].type);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return ret;
 | 
					    return ret;
 | 
				
			||||||
@@ -196,7 +196,7 @@ create_signature(krb5_context context,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    ret = hx509_query_alloc(id->hx509ctx, &q);
 | 
					    ret = hx509_query_alloc(id->hx509ctx, &q);
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret) {
 | 
				
			||||||
	_krb5_pk_copy_error(context, id->hx509ctx, ret, 
 | 
						pk_copy_error(context, id->hx509ctx, ret, 
 | 
				
			||||||
			    "Allocate query to find signing certificate");
 | 
								    "Allocate query to find signing certificate");
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -222,7 +222,7 @@ create_signature(krb5_context context,
 | 
				
			|||||||
				    sd_data);
 | 
									    sd_data);
 | 
				
			||||||
    hx509_cert_free(cert);
 | 
					    hx509_cert_free(cert);
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret) {
 | 
				
			||||||
	_krb5_pk_copy_error(context, id->hx509ctx, ret,
 | 
						pk_copy_error(context, id->hx509ctx, ret,
 | 
				
			||||||
			    "Create CMS signedData");
 | 
								    "Create CMS signedData");
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -753,7 +753,7 @@ _krb5_pk_verify_sign(krb5_context context,
 | 
				
			|||||||
				  content,
 | 
									  content,
 | 
				
			||||||
				  &signer_certs);
 | 
									  &signer_certs);
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret) {
 | 
				
			||||||
	_krb5_pk_copy_error(context, id->hx509ctx, ret,
 | 
						pk_copy_error(context, id->hx509ctx, ret,
 | 
				
			||||||
			    "CMS verify signed failed");
 | 
								    "CMS verify signed failed");
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -767,7 +767,7 @@ _krb5_pk_verify_sign(krb5_context context,
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
    ret = hx509_get_one_cert(id->hx509ctx, signer_certs, &(*signer)->cert);
 | 
					    ret = hx509_get_one_cert(id->hx509ctx, signer_certs, &(*signer)->cert);
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret) {
 | 
				
			||||||
	_krb5_pk_copy_error(context, id->hx509ctx, ret,
 | 
						pk_copy_error(context, id->hx509ctx, ret,
 | 
				
			||||||
			    "Failed to get on of the signer certs");
 | 
								    "Failed to get on of the signer certs");
 | 
				
			||||||
	goto out;
 | 
						goto out;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1006,7 +1006,7 @@ pk_rd_pa_reply_enckey(krb5_context context,
 | 
				
			|||||||
			       &contentType,
 | 
								       &contentType,
 | 
				
			||||||
			       &content);
 | 
								       &content);
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret) {
 | 
				
			||||||
	_krb5_pk_copy_error(context, ctx->id->hx509ctx, ret,
 | 
						pk_copy_error(context, ctx->id->hx509ctx, ret,
 | 
				
			||||||
			    "Failed to unenvelope CMS data in PK-INIT reply");
 | 
								    "Failed to unenvelope CMS data in PK-INIT reply");
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1524,14 +1524,14 @@ _krb5_pk_load_id(krb5_context context,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    ret = hx509_certs_init(id->hx509ctx, user_id, 0, lock, &id->certs);
 | 
					    ret = hx509_certs_init(id->hx509ctx, user_id, 0, lock, &id->certs);
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret) {
 | 
				
			||||||
	_krb5_pk_copy_error(context, id->hx509ctx, ret,
 | 
						pk_copy_error(context, id->hx509ctx, ret,
 | 
				
			||||||
			    "Failed to init cert certs");
 | 
								    "Failed to init cert certs");
 | 
				
			||||||
	goto out;
 | 
						goto out;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ret = hx509_certs_init(id->hx509ctx, anchor_id, 0, NULL, &id->anchors);
 | 
					    ret = hx509_certs_init(id->hx509ctx, anchor_id, 0, NULL, &id->anchors);
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret) {
 | 
				
			||||||
	_krb5_pk_copy_error(context, id->hx509ctx, ret,
 | 
						pk_copy_error(context, id->hx509ctx, ret,
 | 
				
			||||||
			    "Failed to init anchors");
 | 
								    "Failed to init anchors");
 | 
				
			||||||
	goto out;
 | 
						goto out;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1539,7 +1539,7 @@ _krb5_pk_load_id(krb5_context context,
 | 
				
			|||||||
    ret = hx509_certs_init(id->hx509ctx, "MEMORY:pkinit-cert-chain", 
 | 
					    ret = hx509_certs_init(id->hx509ctx, "MEMORY:pkinit-cert-chain", 
 | 
				
			||||||
			   0, NULL, &id->certpool);
 | 
								   0, NULL, &id->certpool);
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret) {
 | 
				
			||||||
	_krb5_pk_copy_error(context, id->hx509ctx, ret,
 | 
						pk_copy_error(context, id->hx509ctx, ret,
 | 
				
			||||||
			    "Failed to init chain");
 | 
								    "Failed to init chain");
 | 
				
			||||||
	goto out;
 | 
						goto out;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1548,7 +1548,7 @@ _krb5_pk_load_id(krb5_context context,
 | 
				
			|||||||
	ret = hx509_certs_append(id->hx509ctx, id->certpool,
 | 
						ret = hx509_certs_append(id->hx509ctx, id->certpool,
 | 
				
			||||||
				 NULL, *chain_list);
 | 
									 NULL, *chain_list);
 | 
				
			||||||
	if (ret) {
 | 
						if (ret) {
 | 
				
			||||||
	    _krb5_pk_copy_error(context, id->hx509ctx, ret,
 | 
						    pk_copy_error(context, id->hx509ctx, ret,
 | 
				
			||||||
				"Failed to laod chain %s",
 | 
									"Failed to laod chain %s",
 | 
				
			||||||
				*chain_list);
 | 
									*chain_list);
 | 
				
			||||||
	    goto out;
 | 
						    goto out;
 | 
				
			||||||
@@ -1559,7 +1559,7 @@ _krb5_pk_load_id(krb5_context context,
 | 
				
			|||||||
    if (revoke_list) {
 | 
					    if (revoke_list) {
 | 
				
			||||||
	ret = hx509_revoke_init(id->hx509ctx, &id->revokectx);
 | 
						ret = hx509_revoke_init(id->hx509ctx, &id->revokectx);
 | 
				
			||||||
	if (ret) {
 | 
						if (ret) {
 | 
				
			||||||
	    _krb5_pk_copy_error(context, id->hx509ctx, ret,
 | 
						    pk_copy_error(context, id->hx509ctx, ret,
 | 
				
			||||||
				"Failed init revoke list");
 | 
									"Failed init revoke list");
 | 
				
			||||||
	    goto out;
 | 
						    goto out;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -1569,7 +1569,7 @@ _krb5_pk_load_id(krb5_context context,
 | 
				
			|||||||
				       id->revokectx,
 | 
									       id->revokectx,
 | 
				
			||||||
				       *revoke_list);
 | 
									       *revoke_list);
 | 
				
			||||||
	    if (ret) {
 | 
						    if (ret) {
 | 
				
			||||||
		_krb5_pk_copy_error(context, id->hx509ctx, ret, 
 | 
							pk_copy_error(context, id->hx509ctx, ret, 
 | 
				
			||||||
				    "Failed load revoke list");
 | 
									    "Failed load revoke list");
 | 
				
			||||||
		goto out;
 | 
							goto out;
 | 
				
			||||||
	    }
 | 
						    }
 | 
				
			||||||
@@ -1580,7 +1580,7 @@ _krb5_pk_load_id(krb5_context context,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    ret = hx509_verify_init_ctx(id->hx509ctx, &id->verify_ctx);
 | 
					    ret = hx509_verify_init_ctx(id->hx509ctx, &id->verify_ctx);
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret) {
 | 
				
			||||||
	_krb5_pk_copy_error(context, id->hx509ctx, ret, 
 | 
						pk_copy_error(context, id->hx509ctx, ret, 
 | 
				
			||||||
			    "Failed init verify context");
 | 
								    "Failed init verify context");
 | 
				
			||||||
	goto out;
 | 
						goto out;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1644,6 +1644,39 @@ select_dh_group(krb5_context context, DH *dh, unsigned long bits,
 | 
				
			|||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					pk_copy_error(krb5_context context,
 | 
				
			||||||
 | 
						      hx509_context hx509ctx,
 | 
				
			||||||
 | 
						      int hxret,
 | 
				
			||||||
 | 
						      const char *fmt,
 | 
				
			||||||
 | 
						      ...)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    va_list va;
 | 
				
			||||||
 | 
					    char *s, *f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    va_start(va, fmt);
 | 
				
			||||||
 | 
					    vasprintf(&f, fmt, va);
 | 
				
			||||||
 | 
					    va_end(va);
 | 
				
			||||||
 | 
					    if (f == NULL) {
 | 
				
			||||||
 | 
						krb5_clear_error_string(context);
 | 
				
			||||||
 | 
						return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    s = hx509_get_error_string(hx509ctx, hxret);
 | 
				
			||||||
 | 
					    if (s == NULL) {
 | 
				
			||||||
 | 
						krb5_clear_error_string(context);
 | 
				
			||||||
 | 
						free(f);
 | 
				
			||||||
 | 
						return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    krb5_set_error_string(context, "%s: %s", f, s);
 | 
				
			||||||
 | 
					    free(s);
 | 
				
			||||||
 | 
					    free(f);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* PKINIT */
 | 
					#endif /* PKINIT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int
 | 
					static int
 | 
				
			||||||
@@ -2073,36 +2106,3 @@ krb5_get_init_creds_opt_set_pkinit(krb5_context context,
 | 
				
			|||||||
    return EINVAL;
 | 
					    return EINVAL;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void
 | 
					 | 
				
			||||||
_krb5_pk_copy_error(krb5_context context,
 | 
					 | 
				
			||||||
		    hx509_context hx509ctx,
 | 
					 | 
				
			||||||
		    int hxret,
 | 
					 | 
				
			||||||
		    const char *fmt,
 | 
					 | 
				
			||||||
		    ...)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    va_list va;
 | 
					 | 
				
			||||||
    char *s, *f;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    va_start(va, fmt);
 | 
					 | 
				
			||||||
    vasprintf(&f, fmt, va);
 | 
					 | 
				
			||||||
    va_end(va);
 | 
					 | 
				
			||||||
    if (f == NULL) {
 | 
					 | 
				
			||||||
	krb5_clear_error_string(context);
 | 
					 | 
				
			||||||
	return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    s = hx509_get_error_string(hx509ctx, hxret);
 | 
					 | 
				
			||||||
    if (s == NULL) {
 | 
					 | 
				
			||||||
	krb5_clear_error_string(context);
 | 
					 | 
				
			||||||
	free(f);
 | 
					 | 
				
			||||||
	return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    krb5_set_error_string(context, "%s: %s", f, s);
 | 
					 | 
				
			||||||
    free(s);
 | 
					 | 
				
			||||||
    free(f);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user