From a7589e61094d96bd45a4092d6300ae24bc539469 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Mon, 5 Dec 2005 18:44:02 +0000 Subject: [PATCH] more tests, From Andrew Bartlet git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16353 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/test_keytab.c | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/lib/krb5/test_keytab.c b/lib/krb5/test_keytab.c index e90a44ef9..5b77f42a0 100644 --- a/lib/krb5/test_keytab.c +++ b/lib/krb5/test_keytab.c @@ -65,11 +65,11 @@ test_empty_keytab(krb5_context context, const char *keytab) */ static void -test_memory_keytab(krb5_context context, const char *keytab) +test_memory_keytab(krb5_context context, const char *keytab, const char *keytab2) { krb5_error_code ret; - krb5_keytab id, id2; - krb5_keytab_entry entry, entry2; + krb5_keytab id, id2, id3; + krb5_keytab_entry entry, entry2, entry3; ret = krb5_kt_resolve(context, keytab, &id); if (ret) @@ -119,6 +119,23 @@ test_memory_keytab(krb5_context context, const char *keytab) krb5_err(context, 1, ret, "krb5_kt_close"); + ret = krb5_kt_resolve(context, keytab2, &id3); + if (ret) + krb5_err(context, 1, ret, "krb5_kt_resolve"); + + memset(&entry3, 0, sizeof(entry3)); + ret = krb5_parse_name(context, "lha3@SU.SE", &entry3.principal); + if (ret) + krb5_err(context, 1, ret, "krb5_parse_name"); + entry3.vno = 1; + ret = krb5_generate_random_keyblock(context, + ETYPE_AES256_CTS_HMAC_SHA1_96, + &entry3.keyblock); + if (ret) + krb5_err(context, 1, ret, "krb5_generate_random_keyblock"); + + krb5_kt_add_entry(context, id3, &entry3); + ret = krb5_kt_resolve(context, keytab, &id); if (ret) @@ -132,11 +149,21 @@ test_memory_keytab(krb5_context context, const char *keytab) if (ret == 0) krb5_errx(context, 1, "krb5_kt_get_entry when if should fail"); + krb5_kt_remove_entry(context, id, &entry); + ret = krb5_kt_close(context, id); if (ret) krb5_err(context, 1, ret, "krb5_kt_close"); krb5_kt_free_entry(context, &entry); + + krb5_kt_remove_entry(context, id3, &entry3); + + ret = krb5_kt_close(context, id3); + if (ret) + krb5_err(context, 1, ret, "krb5_kt_close"); + + } int @@ -155,7 +182,7 @@ main(int argc, char **argv) test_empty_keytab(context, "FILE:foo"); test_empty_keytab(context, "KRB4:foo"); - test_memory_keytab(context, "MEMORY:foo"); + test_memory_keytab(context, "MEMORY:foo", "MEMORY:foo2"); krb5_free_context(context);