ikey.c - dedup - deduplicating backup program Err bitreich.org 70 hgit clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ URL:git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ bitreich.org 70 1Log /scm/dedup/log.gph bitreich.org 70 1Files /scm/dedup/files.gph bitreich.org 70 1Refs /scm/dedup/refs.gph bitreich.org 70 1Tags /scm/dedup/tag bitreich.org 70 1README /scm/dedup/file/README.gph bitreich.org 70 1LICENSE /scm/dedup/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 ikey.c (970B) Err bitreich.org 70 i--- Err bitreich.org 70 i 1 #include Err bitreich.org 70 i 2 #include Err bitreich.org 70 i 3 Err bitreich.org 70 i 4 #include Err bitreich.org 70 i 5 Err bitreich.org 70 i 6 #include "config.h" Err bitreich.org 70 i 7 #include "misc.h" Err bitreich.org 70 i 8 Err bitreich.org 70 i 9 int Err bitreich.org 70 i 10 keygen(unsigned char *key, size_t n) Err bitreich.org 70 i 11 { Err bitreich.org 70 i 12 assert(KEYSIZE == crypto_aead_xchacha20poly1305_ietf_KEYBYTES); Err bitreich.org 70 i 13 if (n != KEYSIZE) { Err bitreich.org 70 i 14 seterr("invalid key size"); Err bitreich.org 70 i 15 return -1; Err bitreich.org 70 i 16 } Err bitreich.org 70 i 17 if (sodium_init() < 0) { Err bitreich.org 70 i 18 seterr("sodium_init: failed"); Err bitreich.org 70 i 19 return -1; Err bitreich.org 70 i 20 } Err bitreich.org 70 i 21 crypto_aead_xchacha20poly1305_ietf_keygen(key); Err bitreich.org 70 i 22 return 0; Err bitreich.org 70 i 23 } Err bitreich.org 70 i 24 Err bitreich.org 70 i 25 int Err bitreich.org 70 i 26 writekey(int fd, unsigned char *key, size_t n) Err bitreich.org 70 i 27 { Err bitreich.org 70 i 28 assert(KEYSIZE == crypto_aead_xchacha20poly1305_ietf_KEYBYTES); Err bitreich.org 70 i 29 if (n != KEYSIZE) { Err bitreich.org 70 i 30 seterr("invalid key size"); Err bitreich.org 70 i 31 return -1; Err bitreich.org 70 i 32 } Err bitreich.org 70 i 33 if (xwrite(fd, key, n) != n) { Err bitreich.org 70 i 34 seterr("failed to write key"); Err bitreich.org 70 i 35 return -1; Err bitreich.org 70 i 36 } Err bitreich.org 70 i 37 return 0; Err bitreich.org 70 i 38 } Err bitreich.org 70 i 39 Err bitreich.org 70 i 40 int Err bitreich.org 70 i 41 readkey(int fd, unsigned char *key, size_t n) Err bitreich.org 70 i 42 { Err bitreich.org 70 i 43 assert(KEYSIZE == crypto_aead_xchacha20poly1305_ietf_KEYBYTES); Err bitreich.org 70 i 44 if (n != KEYSIZE) { Err bitreich.org 70 i 45 seterr("invalid key size"); Err bitreich.org 70 i 46 return -1; Err bitreich.org 70 i 47 } Err bitreich.org 70 i 48 if (xread(fd, key, n) != n) { Err bitreich.org 70 i 49 seterr("failed to read key"); Err bitreich.org 70 i 50 return -1; Err bitreich.org 70 i 51 } Err bitreich.org 70 i 52 return 0; Err bitreich.org 70 i 53 } Err bitreich.org 70 .