diff options
author | Luke Howard <lukeh@padl.com> | 2010-09-30 13:09:32 +0000 |
---|---|---|
committer | Luke Howard <lukeh@padl.com> | 2010-09-30 13:09:32 +0000 |
commit | 2b54a2cd880a13b316d1c6aa50d1414a9c81af1d (patch) | |
tree | ab5f17f12de2ef9759ad6fa1cbd9c0b9dfda7bee | |
parent | 988455255dad08d0fa3e7da7efd63b4a0606f777 (diff) | |
download | krb5-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.c | 76 |
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); |