more name testing
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17856 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -102,10 +102,10 @@ main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
gss_buffer_desc name_buffer;
|
gss_buffer_desc name_buffer;
|
||||||
OM_uint32 maj_stat, min_stat;
|
OM_uint32 maj_stat, min_stat;
|
||||||
gss_name_t name, MNname;
|
gss_name_t name, MNname, MNname2;
|
||||||
int optidx = 0;
|
int optidx = 0;
|
||||||
char *str;
|
char *str;
|
||||||
int len;
|
int len, equal;
|
||||||
|
|
||||||
setprogname(argv[0]);
|
setprogname(argv[0]);
|
||||||
if(getarg(args, sizeof(args) / sizeof(args[0]), argc, argv, &optidx))
|
if(getarg(args, sizeof(args) / sizeof(args[0]), argc, argv, &optidx))
|
||||||
@@ -122,6 +122,10 @@ main(int argc, char **argv)
|
|||||||
argc -= optidx;
|
argc -= optidx;
|
||||||
argv += optidx;
|
argv += optidx;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* test import/export
|
||||||
|
*/
|
||||||
|
|
||||||
len = asprintf(&str, "ftp@freeze-arrow.mit.edu");
|
len = asprintf(&str, "ftp@freeze-arrow.mit.edu");
|
||||||
if (len == -1)
|
if (len == -1)
|
||||||
errx(1, "asprintf");
|
errx(1, "asprintf");
|
||||||
@@ -143,14 +147,68 @@ main(int argc, char **argv)
|
|||||||
if (maj_stat != GSS_S_COMPLETE)
|
if (maj_stat != GSS_S_COMPLETE)
|
||||||
gss_err(1, min_stat, "canonicalize name error");
|
gss_err(1, min_stat, "canonicalize name error");
|
||||||
|
|
||||||
maj_stat = gss_export_name(&maj_stat,
|
maj_stat = gss_export_name(&min_stat,
|
||||||
MNname,
|
MNname,
|
||||||
&name_buffer);
|
&name_buffer);
|
||||||
if (maj_stat != GSS_S_COMPLETE)
|
if (maj_stat != GSS_S_COMPLETE)
|
||||||
gss_err(1, min_stat, "export name error (KRB5)");
|
gss_err(1, min_stat, "export name error (KRB5)");
|
||||||
|
|
||||||
gss_release_name(&min_stat, &MNname);
|
/*
|
||||||
|
* Import the exported name and compare
|
||||||
|
*/
|
||||||
|
|
||||||
|
maj_stat = gss_import_name(&min_stat, &name_buffer,
|
||||||
|
GSS_C_NT_EXPORT_NAME,
|
||||||
|
&MNname2);
|
||||||
|
if (maj_stat != GSS_S_COMPLETE)
|
||||||
|
gss_err(1, min_stat, "import name error (exported KRB5 name)");
|
||||||
|
|
||||||
|
|
||||||
|
maj_stat = gss_compare_name(&min_stat, MNname, MNname2, &equal);
|
||||||
|
if (maj_stat != GSS_S_COMPLETE)
|
||||||
|
errx(1, "gss_compare_name");
|
||||||
|
if (!equal)
|
||||||
|
errx(1, "names not equal");
|
||||||
|
|
||||||
|
gss_release_name(&min_stat, &MNname2);
|
||||||
gss_release_buffer(&min_stat, &name_buffer);
|
gss_release_buffer(&min_stat, &name_buffer);
|
||||||
|
gss_release_name(&min_stat, &MNname);
|
||||||
|
gss_release_name(&min_stat, &name);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Import oid less name and compare to mech name.
|
||||||
|
* Dovecot SASL lib does this.
|
||||||
|
*/
|
||||||
|
|
||||||
|
len = asprintf(&str, "lha");
|
||||||
|
if (len == -1)
|
||||||
|
errx(1, "asprintf");
|
||||||
|
|
||||||
|
name_buffer.value = str;
|
||||||
|
name_buffer.length = len;
|
||||||
|
|
||||||
|
maj_stat = gss_import_name(&min_stat, &name_buffer,
|
||||||
|
GSS_C_NO_OID,
|
||||||
|
&name);
|
||||||
|
if (maj_stat != GSS_S_COMPLETE)
|
||||||
|
gss_err(1, min_stat, "import (no oid) name error");
|
||||||
|
|
||||||
|
maj_stat = gss_import_name(&min_stat, &name_buffer,
|
||||||
|
GSS_KRB5_NT_USER_NAME,
|
||||||
|
&MNname);
|
||||||
|
if (maj_stat != GSS_S_COMPLETE)
|
||||||
|
gss_err(1, min_stat, "import (krb5 mn) name error");
|
||||||
|
|
||||||
|
free(str);
|
||||||
|
|
||||||
|
maj_stat = gss_compare_name(&min_stat, name, MNname, &equal);
|
||||||
|
if (maj_stat != GSS_S_COMPLETE)
|
||||||
|
errx(1, "gss_compare_name");
|
||||||
|
if (!equal)
|
||||||
|
errx(1, "names not equal");
|
||||||
|
|
||||||
|
gss_release_name(&min_stat, &MNname);
|
||||||
|
gss_release_name(&min_stat, &name);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
maj_stat = gss_canonicalize_name (&min_stat,
|
maj_stat = gss_canonicalize_name (&min_stat,
|
||||||
@@ -170,7 +228,6 @@ main(int argc, char **argv)
|
|||||||
gss_release_name(&min_stat, &MNname);
|
gss_release_name(&min_stat, &MNname);
|
||||||
gss_release_buffer(&min_stat, &name_buffer);
|
gss_release_buffer(&min_stat, &name_buffer);
|
||||||
#endif
|
#endif
|
||||||
gss_release_name(&min_stat, &name);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user