aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Howard <lukeh@padl.com>2010-09-30 13:09:32 +0000
committerLuke Howard <lukeh@padl.com>2010-09-30 13:09:32 +0000
commit2b54a2cd880a13b316d1c6aa50d1414a9c81af1d (patch)
treeab5f17f12de2ef9759ad6fa1cbd9c0b9dfda7bee
parent988455255dad08d0fa3e7da7efd63b4a0606f777 (diff)
downloadkrb5-2b54a2cd880a13b316d1c6aa50d1414a9c81af1d.zip
krb5-2b54a2cd880a13b316d1c6aa50d1414a9c81af1d.tar.gz
krb5-2b54a2cd880a13b316d1c6aa50d1414a9c81af1d.tar.bz2
dump mechanism attributes, cleanup
git-svn-id: svn://anonsvn.mit.edu/krb5/users/lhoward/sasl-gs2@24385 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/tests/gssapi/t_saslname.c76
1 files changed, 70 insertions, 6 deletions
diff --git a/src/tests/gssapi/t_saslname.c b/src/tests/gssapi/t_saslname.c
index 766c450..b003d93 100644
--- a/src/tests/gssapi/t_saslname.c
+++ b/src/tests/gssapi/t_saslname.c
@@ -62,6 +62,69 @@ static void displayStatus(msg, maj_stat, min_stat)
displayStatus_1(msg, min_stat, GSS_C_MECH_CODE);
}
+static
+OM_uint32 dumpMechAttrs(OM_uint32 *minor, gss_OID mech)
+{
+ OM_uint32 major, tmpMinor;
+ gss_OID_set mech_attrs = GSS_C_NO_OID_SET;
+ gss_OID_set known_attrs = GSS_C_NO_OID_SET;
+ size_t i;
+
+ major = gss_inquire_attrs_for_mech(minor,
+ mech,
+ &mech_attrs,
+ &known_attrs);
+ if (GSS_ERROR(major)) {
+ displayStatus("gss_inquire_attrs_for_mech", major, *minor);
+ return major;
+ }
+
+ printf("Mech attrs: ");
+
+ for (i = 0; i < mech_attrs->count; i++) {
+ gss_buffer_desc name = GSS_C_EMPTY_BUFFER;
+ gss_buffer_desc short_desc = GSS_C_EMPTY_BUFFER;
+ gss_buffer_desc long_desc = GSS_C_EMPTY_BUFFER;
+
+ major = gss_display_mech_attr(minor, &mech_attrs->elements[i],
+ &name, &short_desc, &long_desc);
+ if (GSS_ERROR(major)) {
+ displayStatus("gss_display_mech_attr", major, *minor);
+ continue;
+ }
+ printf("%.*s ", (int)name.length, (char *)name.value);
+ gss_release_buffer(minor, &name);
+ gss_release_buffer(minor, &short_desc);
+ gss_release_buffer(minor, &long_desc);
+ }
+ printf("\n");
+
+ printf("Known attrs: ");
+
+ for (i = 0; i < known_attrs->count; i++) {
+ gss_buffer_desc name = GSS_C_EMPTY_BUFFER;
+ gss_buffer_desc short_desc = GSS_C_EMPTY_BUFFER;
+ gss_buffer_desc long_desc = GSS_C_EMPTY_BUFFER;
+
+ major = gss_display_mech_attr(minor, &known_attrs->elements[i],
+ &name, &short_desc, &long_desc);
+ if (GSS_ERROR(major)) {
+ displayStatus("gss_display_mech_attr", major, *minor);
+ continue;
+ }
+ printf("%.*s ", (int)name.length, (char *)name.value);
+ gss_release_buffer(minor, &name);
+ gss_release_buffer(minor, &short_desc);
+ gss_release_buffer(minor, &long_desc);
+ }
+ printf("\n");
+
+ gss_release_oid_set(&tmpMinor, &mech_attrs);
+ gss_release_oid_set(&tmpMinor, &known_attrs);
+
+ return GSS_S_COMPLETE;
+}
+
int main(int argc, char *argv[])
{
gss_OID_set mechs;
@@ -94,10 +157,11 @@ int main(int argc, char *argv[])
}
printf("------------------------------------------------------------------------------\n");
- printf("OID : %.*s\n", oidstr.length, (char *)oidstr.value);
- printf("SASL mech: %.*s\n", sasl_mech_name.length, (char *)sasl_mech_name.value);
- printf("Mech name: %.*s\n", mech_name.length, (char *)mech_name.value);
- printf("Mech desc: %.*s\n", mech_description.length, (char *)mech_description.value);
+ printf("OID : %.*s\n", (int)oidstr.length, (char *)oidstr.value);
+ printf("SASL mech : %.*s\n", (int)sasl_mech_name.length, (char *)sasl_mech_name.value);
+ printf("Mech name : %.*s\n", (int)mech_name.length, (char *)mech_name.value);
+ printf("Mech desc : %.*s\n", (int)mech_description.length, (char *)mech_description.value);
+ dumpMechAttrs(&minor, &mechs->elements[i]);
printf("------------------------------------------------------------------------------\n");
if (GSS_ERROR(gss_inquire_mech_for_saslname(&minor, &sasl_mech_name, &oid))) {
@@ -108,8 +172,8 @@ int main(int argc, char *argv[])
gss_release_buffer(&minor, &oidstr);
(void) gss_oid_to_str(&minor, oid, &oidstr);
fprintf(stderr, "Got different OID %.*s for mechanism %.*s\n",
- oidstr.length, (char *)oidstr.value,
- sasl_mech_name.length, (char *)sasl_mech_name.value);
+ (int)oidstr.length, (char *)oidstr.value,
+ (int)sasl_mech_name.length, (char *)sasl_mech_name.value);
}
gss_release_buffer(&minor, &oidstr);
gss_release_buffer(&minor, &sasl_mech_name);