- pd_uuid_make_v3(0, &uuid, &dns, "granicus.if.org", strlen("granicus.if.org"));
- ufmt(&uuid, fmt);
- printf("granicus.if.org (v3): %s\n", fmt);
+ if (mode == 3 || mode == 5) {
+ /* TODO warn if q != 1 */
+ int len;
+ if (!nsid) {
+ if (!ns) {
+ die("must specify namespace for version %d uuids", mode);
+ }
+ if (!strcmp(ns, "dns")) {
+ nsid = &pd_uuid_ns_dns;
+ } else if (!strcmp(ns, "url")) {
+ nsid = &pd_uuid_ns_url;
+ } else if (!strcmp(ns, "oid")) {
+ nsid = &pd_uuid_ns_oid;
+ } else if (!strcmp(ns, "x500")) {
+ nsid = &pd_uuid_ns_x500;
+ } else {
+ nsid = &nsuuid;
+ if (pd_uuid_set_string(nsid, ns) != 0) {
+ die("malformed ns uuid: %s\n", ns);
+ }
+ }
+ }
+ for (i = optind; i < ac; i++) {
+ len = strlen(av[i]);
+ if (mode == 3) {
+ pd_uuid_get_string(nsid, uuid);
+ pd_uuid_make_v3(0, &u, nsid, av[i], len);
+ } else {
+ pd_uuid_make_v5(&s, &u, nsid, av[i], len);
+ }
+ pd_uuid_get_string(&u, uuid);
+ printf("%s\n", uuid);
+ }
+ exit(EXIT_SUCCESS);
+ }