]> pd.if.org Git - uuid/blob - uuidgen.c
Initial commit
[uuid] / uuidgen.c
1 /*
2  * test program for uuid library
3  *
4  * written by nathan wagner and placed in the public domain
5  */
6 #include <stdio.h>
7 #include <string.h>
8 #include <stdlib.h>
9
10 #include "pduuid.h"
11
12 void ufmt(pd_uuid_t *uuid, char *s) {
13         int i;
14         for (i=0;i<4;i++) {
15                 s += sprintf(s, "%02x", uuid->data[i]);
16         }
17         s += sprintf(s, "-");
18         for (;i<6;i++) {
19                 s += sprintf(s, "%02x", uuid->data[i]);
20         }
21         s += sprintf(s, "-");
22         for (;i<8;i++) {
23                 s += sprintf(s, "%02x", uuid->data[i]);
24         }
25         s += sprintf(s, "-");
26         for (;i<10;i++) {
27                 s += sprintf(s, "%02x", uuid->data[i]);
28         }
29         s += sprintf(s, "-");
30         for (;i<16;i++) {
31                 s += sprintf(s, "%02x", uuid->data[i]);
32         }
33 }
34
35 int main(int ac, char *av[]) {
36         pd_uuid_t uuid;
37         pd_uuid_t dns;
38         char fmt[37];
39
40 #ifdef WIN32
41         srand(time(0));
42 #else
43         srandom(time(0));
44 #endif
45
46         pd_uuid_make_v1(0, &uuid);
47         ufmt(&uuid, fmt);
48         printf("v1: %s\n", fmt);
49
50         pd_uuid_make_v4(0, &uuid);
51         ufmt(&uuid, fmt);
52         printf("v4: %s\n", fmt);
53
54         pd_uuid_set_string(&dns, "6ba7b810-9dad-11d1-80b4-00c04fd430c8");
55         ufmt(&dns, fmt);
56         printf("dns: %s\n", fmt);
57
58         pd_uuid_make_v3(0, &uuid, &dns, "granicus.if.org", strlen("granicus.if.org"));
59         ufmt(&uuid, fmt);
60         printf("granicus.if.org (v3): %s\n", fmt);
61
62         pd_uuid_make_v5(0, &uuid, &dns, "granicus.if.org", strlen("granicus.if.org"));
63         ufmt(&uuid, fmt);
64         printf("granicus.if.org (v5): %s\n", fmt);
65
66         return 0;
67 }