#include <rx/rxkad.h>
#include <afs/cellconfig.h>
-#include <tap/basic.h>
+#include <tests/tap/basic.h>
#include "common.h"
int
struct afsconf_dir *dir;
char *dirname;
struct rx_securityClass **classes;
+ struct rx_securityClass *secClass;
+ int secIndex;
int numClasses;
+ struct afsconf_typedKey *key;
+ int code = 0;
- plan(3);
- dirname = buildTestConfig();
+ afstest_SkipTestsIfBadHostname();
+
+ plan(9);
+ dirname = afstest_BuildTestConfig();
dir = afsconf_Open(dirname);
if (dir == NULL) {
fprintf(stderr, "Unable to configure directory.\n");
- exit(1);
+ code = 1;
+ goto out;
}
+ rx_Init(0);
+
/* Server Security objects */
afsconf_BuildServerSecurityObjects(dir, &classes, &numClasses);
afsconf_BuildServerSecurityObjects(dir, &classes, &numClasses);
is_int(4, numClasses, "When encryption is enabled, 4 classes are returned");
- return 0;
+ /* Up to date checks */
+
+ ok(afsconf_UpToDate(dir), "Newly opened directory is up to date");
+ is_int(0, afsconf_AddKey(dir,
+ 1, "\x19\x16\xfe\xe6\xba\x77\x2f\xfd", 0),
+ "Adding key worked");
+ ok(!afsconf_UpToDate(dir), "Directory with newly added key isn't");
+ afsconf_ClientAuth(dir, &secClass, &secIndex);
+ ok(afsconf_UpToDate(dir), "afsconf_ClientAuth() resets UpToDate check");
+ afsconf_DeleteKey(dir, 1);
+ ok(!afsconf_UpToDate(dir), "Directory with newly deleted key isn't");
+ afsconf_GetLatestKeyByTypes(dir, afsconf_rxkad, 0, &key);
+ ok(afsconf_UpToDate(dir), "afsconf_GetLatestKeyByTypes resest UpToDate");
+
+out:
+ afstest_UnlinkTestConfig(dirname);
+ return code;
}