3 * This program will verify signatures on user records in the database.
11 #include <moira_site.h>
23 char buf[BUFSIZ], *usercheck[100], sigbuf[256];
25 int status, i, wait, check, debug;
26 ## char login[10], mid[32], rawsig[256], who[257];
29 initialize_sms_error_table();
30 initialize_krb_error_table();
31 initialize_gdss_error_table();
36 for (i = 1; i < argc; i++) {
37 if (!strcmp(argv[i], "-w"))
39 else if (!strcmp(argv[i], "-d"))
41 else if (!strcmp(argv[i], "-D"))
42 setenv("ING_SET", "set printqry");
43 else if (argv[i][0] == '-')
44 fprintf(stderr, "Usage: %s [-w] [-D]\n", argv[0]);
45 else usercheck[check++] = argv[i];
49 ## range of u is users
50 ## range of s is strings
53 ## retrieve (login = u.#login, mid = u.mit_id, rawsig = u.signature,
54 ## who = s.string, timestamp = u.sigdate)
55 ## where u.signature != "" and u.sigwho = s.string_id {
56 sprintf(buf, "%s:%s", strtrim(login), strtrim(mid));
57 si.timestamp = timestamp;
58 si.SigInfoVersion = 0;
59 kname_parse(si.pname, si.pinst, si.prealm, strtrim(who));
60 si.rawsig = (unsigned char *) &rawsig[0];
61 status = GDSS_Recompose(&si, sigbuf);
63 com_err(program, gdss2et(status), "recomposing for user %s", login);
67 status = GDSS_Verify(buf, strlen(buf), sigbuf, &si);
69 com_err(program, gdss2et(status), "verifying user %s", login);
78 for (i = check - 1; i >= 0; i--) {
79 strcpy(login, usercheck[i]);
80 ## retrieve (mid = u.mit_id, rawsig = u.signature,
81 ## who = s.string, timestamp = u.sigdate)
82 ## where u.signature != "" and u.sigwho = s.string_id
83 ## and u.#login = login {
84 sprintf(buf, "%s:%s", strtrim(login), strtrim(mid));
86 printf("Verifying \"%s\"\n", buf);
88 si.timestamp = timestamp;
89 si.SigInfoVersion = 0;
90 kname_parse(si.pname, si.pinst, si.prealm, strtrim(who));
91 si.rawsig = (unsigned char *) &rawsig[0];
92 status = GDSS_Recompose(&si, sigbuf);
94 com_err(program, gdss2et(status), "recomposing for user %s", login);
98 status = GDSS_Verify(buf, strlen(buf), sigbuf, &si);
100 com_err(program, gdss2et(status), "verifying user %s", login);
102 com_err(program, 0, "signature verified %s", buf);
124 printf("Size: %d\n", strlen(p));
125 while (strlen(p) >= 8) {
126 printf("%02x %02x %02x %02x %02x %02x %02x %02x\n",
127 p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]);
132 printf("%02x %02x %02x %02x %02x %02x %02x\n",
133 p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
136 printf("%02x %02x %02x %02x %02x %02x\n",
137 p[0], p[1], p[2], p[3], p[4], p[5]);
140 printf("%02x %02x %02x %02x %02x\n",
141 p[0], p[1], p[2], p[3], p[4]);
144 printf("%02x %02x %02x %02x\n",
145 p[0], p[1], p[2], p[3]);
148 printf("%02x %02x %02x\n",
152 printf("%02x %02x\n",