dup-keygen.c - dedup - deduplicating backup program
HTML git clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/
DIR Log
DIR Files
DIR Refs
DIR Tags
DIR README
DIR LICENSE
---
dup-keygen.c (918B)
---
1 #include <sys/types.h>
2 #include <sys/stat.h>
3
4 #include <err.h>
5 #include <fcntl.h>
6 #include <stdint.h>
7 #include <stdio.h>
8 #include <stdlib.h>
9 #include <unistd.h>
10
11 #include "arg.h"
12 #include "config.h"
13 #include "key.h"
14 #include "misc.h"
15 #include "state.h"
16
17 struct param param; /* unused but needed for linking */
18 int verbose;
19 char *argv0;
20
21 static void
22 usage(void)
23 {
24 fprintf(stderr, "usage: %s [-v] keyfile\n", argv0);
25 exit(1);
26 }
27
28 int
29 main(int argc, char *argv[])
30 {
31 unsigned char key[KEYSIZE];
32 int fd;
33
34 ARGBEGIN {
35 case 'v':
36 verbose++;
37 break;
38 default:
39 usage();
40 } ARGEND
41
42 if (argc != 1)
43 usage();
44
45 fd = open(argv[0], O_RDWR | O_CREAT | O_EXCL, 0600);
46 if (fd < 0)
47 err(1, "open: %s", argv[0]);
48 if (keygen(key, sizeof(key)) < 0)
49 printerr("keygen");
50 if (writekey(fd, key, sizeof(key)) < 0)
51 printerr("writekey: %s", argv[0]);
52 fsync(fd);
53 if (close(fd) < 0)
54 err(1, "close: %s", argv[0]);
55 return 0;
56 }