make gss_acquire_cred_ext private

This commit is contained in:
Luke Howard
2011-05-20 14:31:08 +02:00
parent 9cf61bc762
commit 79ff133ae9
10 changed files with 80 additions and 65 deletions

View File

@@ -139,17 +139,18 @@ proto (int sock, const char *hostname, const char *service)
pw.value = password; pw.value = password;
pw.length = strlen(password); pw.length = strlen(password);
maj_stat = gss_acquire_cred_ext(&min_stat, maj_stat = gss_acquire_cred_with_password(&min_stat,
GSS_C_NO_NAME, GSS_C_NO_NAME,
GSS_C_CRED_PASSWORD, &pw,
&pw, GSS_C_INDEFINITE,
GSS_C_INDEFINITE, GSS_C_NO_OID_SET,
GSS_C_NO_OID, GSS_C_INITIATE,
GSS_C_INITIATE, &cred,
&cred); NULL,
NULL);
if (GSS_ERROR(maj_stat)) if (GSS_ERROR(maj_stat))
gss_err (1, min_stat, gss_err (1, min_stat,
"Error acquiring initiator credentials"); "Error acquiring default initiator credentials");
} }
addrlen = sizeof(local); addrlen = sizeof(local);

View File

@@ -474,23 +474,6 @@ GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_acquire_cred
OM_uint32 * /*time_rec*/ OM_uint32 * /*time_rec*/
); );
extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_cred_password_oid_desc;
#define GSS_C_CRED_PASSWORD (&__gss_c_cred_password_oid_desc)
extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_cred_certificate_oid_desc;
#define GSS_C_CRED_CERTIFICATE (&__gss_c_cred_certificate_oid_desc)
GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_acquire_cred_ext
(OM_uint32 * /*minor_status*/,
const gss_name_t /*desired_name*/,
gss_const_OID /*credential_type*/,
const void * /*credential_data*/,
OM_uint32 /*time_req*/,
gss_const_OID /*desired_mech*/,
gss_cred_usage_t /*cred_usage*/,
gss_cred_id_t * /*output_cred_handle*/
);
GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_release_cred GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_release_cred
(OM_uint32 * /*minor_status*/, (OM_uint32 * /*minor_status*/,
gss_cred_id_t * /*cred_handle*/ gss_cred_id_t * /*cred_handle*/

View File

@@ -570,4 +570,25 @@ struct _gss_oid_name_table {
extern struct _gss_oid_name_table _gss_ont_mech[]; extern struct _gss_oid_name_table _gss_ont_mech[];
extern struct _gss_oid_name_table _gss_ont_ma[]; extern struct _gss_oid_name_table _gss_ont_ma[];
/*
* Extended credentials acqusition API, not to be exported until
* it or something equivalent has been standardised.
*/
extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_cred_password_oid_desc;
#define GSS_C_CRED_PASSWORD (&__gss_c_cred_password_oid_desc)
extern gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_cred_certificate_oid_desc;
#define GSS_C_CRED_CERTIFICATE (&__gss_c_cred_certificate_oid_desc)
OM_uint32 _gss_acquire_cred_ext
(OM_uint32 * /*minor_status*/,
const gss_name_t /*desired_name*/,
gss_const_OID /*credential_type*/,
const void * /*credential_data*/,
OM_uint32 /*time_req*/,
gss_const_OID /*desired_mech*/,
gss_cred_usage_t /*cred_usage*/,
gss_cred_id_t * /*output_cred_handle*/
);
#endif /* GSSAPI_MECH_H */ #endif /* GSSAPI_MECH_H */

View File

@@ -11,7 +11,7 @@ EXPORTS
__gss_c_attr_stream_sizes_oid_desc DATA __gss_c_attr_stream_sizes_oid_desc DATA
gss_accept_sec_context gss_accept_sec_context
gss_acquire_cred gss_acquire_cred
gss_acquire_cred_ext ;! gss_acquire_cred_ext
gss_acquire_cred_with_password gss_acquire_cred_with_password
gss_add_buffer_set_member gss_add_buffer_set_member
gss_add_cred gss_add_cred

View File

@@ -44,7 +44,7 @@ _gss_copy_cred(struct _gss_mechanism_cred *mc);
struct _gss_mechanism_name; struct _gss_mechanism_name;
GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL OM_uint32
_gss_acquire_mech_cred(OM_uint32 *minor_status, _gss_acquire_mech_cred(OM_uint32 *minor_status,
gssapi_mech_interface m, gssapi_mech_interface m,
const struct _gss_mechanism_name *mn, const struct _gss_mechanism_name *mn,

View File

@@ -30,7 +30,7 @@
#include "mech_locl.h" #include "mech_locl.h"
GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL OM_uint32
_gss_acquire_mech_cred(OM_uint32 *minor_status, _gss_acquire_mech_cred(OM_uint32 *minor_status,
gssapi_mech_interface m, gssapi_mech_interface m,
const struct _gss_mechanism_name *mn, const struct _gss_mechanism_name *mn,
@@ -104,8 +104,8 @@ _gss_acquire_mech_cred(OM_uint32 *minor_status,
return major_status; return major_status;
} }
GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL OM_uint32
gss_acquire_cred_ext(OM_uint32 *minor_status, _gss_acquire_cred_ext(OM_uint32 *minor_status,
const gss_name_t desired_name, const gss_name_t desired_name,
gss_const_OID credential_type, gss_const_OID credential_type,
const void *credential_data, const void *credential_data,

View File

@@ -46,14 +46,14 @@ gss_acquire_cred_with_password(OM_uint32 *minor_status,
OM_uint32 major_status, tmp_minor; OM_uint32 major_status, tmp_minor;
if (desired_mechs == GSS_C_NO_OID_SET) { if (desired_mechs == GSS_C_NO_OID_SET) {
major_status = gss_acquire_cred_ext(minor_status, major_status = _gss_acquire_cred_ext(minor_status,
desired_name, desired_name,
GSS_C_CRED_PASSWORD, GSS_C_CRED_PASSWORD,
password, password,
time_req, time_req,
GSS_C_NO_OID, GSS_C_NO_OID,
cred_usage, cred_usage,
output_cred_handle); output_cred_handle);
if (GSS_ERROR(major_status)) if (GSS_ERROR(major_status))
return major_status; return major_status;
} else { } else {
@@ -71,14 +71,14 @@ gss_acquire_cred_with_password(OM_uint32 *minor_status,
struct _gss_cred *tmp_cred = NULL; struct _gss_cred *tmp_cred = NULL;
struct _gss_mechanism_cred *mc; struct _gss_mechanism_cred *mc;
major_status = gss_acquire_cred_ext(minor_status, major_status = _gss_acquire_cred_ext(minor_status,
desired_name, desired_name,
GSS_C_CRED_PASSWORD, GSS_C_CRED_PASSWORD,
password, password,
time_req, time_req,
&desired_mechs->elements[i], &desired_mechs->elements[i],
cred_usage, cred_usage,
(gss_cred_id_t *)&tmp_cred); (gss_cred_id_t *)&tmp_cred);
if (GSS_ERROR(major_status)) if (GSS_ERROR(major_status))
continue; continue;

View File

@@ -366,8 +366,8 @@ _gss_load_mech(void)
OPTSYM(store_cred); OPTSYM(store_cred);
OPTSYM(export_cred); OPTSYM(export_cred);
OPTSYM(import_cred); OPTSYM(import_cred);
OPTSYM(acquire_cred_ext);
#if 0 #if 0
OPTSYM(acquire_cred_ext);
OPTSYM(iter_creds); OPTSYM(iter_creds);
OPTSYM(destroy_cred); OPTSYM(destroy_cred);
OPTSYM(cred_hold); OPTSYM(cred_hold);

View File

@@ -507,8 +507,8 @@ main(int argc, char **argv)
void *ctx; void *ctx;
gss_OID nameoid, mechoid, actual_mech, actual_mech2; gss_OID nameoid, mechoid, actual_mech, actual_mech2;
gss_cred_id_t client_cred = GSS_C_NO_CREDENTIAL, deleg_cred = GSS_C_NO_CREDENTIAL; gss_cred_id_t client_cred = GSS_C_NO_CREDENTIAL, deleg_cred = GSS_C_NO_CREDENTIAL;
gss_OID credential_type; gss_name_t cname = GSS_C_NO_NAME;
gss_buffer_desc credential_data; gss_buffer_desc credential_data = GSS_C_EMPTY_BUFFER;
setprogname(argv[0]); setprogname(argv[0]);
@@ -561,35 +561,46 @@ main(int argc, char **argv)
} }
if (client_password) { if (client_password) {
credential_type = GSS_C_CRED_PASSWORD;
credential_data.value = client_password; credential_data.value = client_password;
credential_data.length = strlen(client_password); credential_data.length = strlen(client_password);
} else }
credential_type = GSS_C_NO_OID;
if (client_name) { if (client_name) {
gss_buffer_desc cn; gss_buffer_desc cn;
gss_name_t cname;
cn.value = client_name; cn.value = client_name;
cn.length = strlen(client_name); cn.length = strlen(client_name);
maj_stat = gss_import_name(&min_stat, &cn, GSS_C_NT_USER_NAME, &cname); maj_stat = gss_import_name(&min_stat, &cn, GSS_C_NT_USER_NAME, &cname);
if (maj_stat) if (maj_stat)
errx(1, "gss_import_name: %s", errx(1, "gss_import_name: %s",
gssapi_err(maj_stat, min_stat, GSS_C_NO_OID)); gssapi_err(maj_stat, min_stat, GSS_C_NO_OID));
}
maj_stat = gss_acquire_cred_ext(&min_stat, cname, if (client_password) {
credential_type, &credential_data, maj_stat = gss_acquire_cred_with_password(&min_stat,
0, GSS_C_NO_OID, GSS_C_INITIATE, &client_cred); cname,
&credential_data,
GSS_C_INDEFINITE,
GSS_C_NO_OID_SET,
GSS_C_INITIATE,
&client_cred,
NULL,
NULL);
if (GSS_ERROR(maj_stat)) if (GSS_ERROR(maj_stat))
errx(1, "gss_acquire_cred_ext: %s", errx(1, "gss_acquire_cred_with_password: %s",
gssapi_err(maj_stat, min_stat, GSS_C_NO_OID)); gssapi_err(maj_stat, min_stat, GSS_C_NO_OID));
gss_release_name(&min_stat, &cname); } else {
} else if (credential_type) { maj_stat = gss_acquire_cred(&min_stat,
maj_stat = gss_acquire_cred_ext(&min_stat, GSS_C_NO_NAME, cname,
credential_type, &credential_data, GSS_C_INDEFINITE,
0, GSS_C_NO_OID, GSS_C_INITIATE, &client_cred); GSS_C_NO_OID_SET,
GSS_C_INITIATE,
&client_cred,
NULL,
NULL);
if (GSS_ERROR(maj_stat)) if (GSS_ERROR(maj_stat))
errx(1, "gss_acquire_cred_ext: %s", errx(1, "gss_acquire_cred_with_password: %s",
gssapi_err(maj_stat, min_stat, GSS_C_NO_OID)); gssapi_err(maj_stat, min_stat, GSS_C_NO_OID));
} }

View File

@@ -17,7 +17,6 @@ HEIMDAL_GSS_2.0 {
GSS_C_ATTR_LOCAL_LOGIN_USER; GSS_C_ATTR_LOCAL_LOGIN_USER;
gss_accept_sec_context; gss_accept_sec_context;
gss_acquire_cred; gss_acquire_cred;
gss_acquire_cred_ext;
gss_acquire_cred_with_password; gss_acquire_cred_with_password;
gss_add_buffer_set_member; gss_add_buffer_set_member;
gss_add_cred; gss_add_cred;