iStore key in hex format - 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
1commit bf808eff120238a6a3ef7cc243469143a7f8c40b /scm/dedup/commit/bf808eff120238a6a3ef7cc243469143a7f8c40b.gph bitreich.org 70
1parent b7ba4766399045f736c536b1a9b17c26e181cfa8 /scm/dedup/commit/b7ba4766399045f736c536b1a9b17c26e181cfa8.gph bitreich.org 70
hAuthor: sin <sin@2f30.org> URL:mailto:sin@2f30.org bitreich.org 70
iDate: Tue, 21 May 2019 13:55:55 +0300 Err bitreich.org 70
i Err bitreich.org 70
iStore key in hex format Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M key.c | 18 ++++++++++++++++-- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 16 insertions(+), 2 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/key.c b/key.c /scm/dedup/file/key.c.gph bitreich.org 70
i@@ -25,12 +25,17 @@ keygen(unsigned char *key, size_t n) Err bitreich.org 70
i int Err bitreich.org 70
i writekey(int fd, unsigned char *key, size_t n) Err bitreich.org 70
i { Err bitreich.org 70
i+ unsigned char keystr[KEYSIZE * 2 + 1]; Err bitreich.org 70
i+ Err bitreich.org 70
i assert(KEYSIZE == crypto_aead_xchacha20poly1305_ietf_KEYBYTES); Err bitreich.org 70
i if (n != KEYSIZE) { Err bitreich.org 70
i seterr("invalid key size"); Err bitreich.org 70
i return -1; Err bitreich.org 70
i } Err bitreich.org 70
i- if (xwrite(fd, key, n) != n) { Err bitreich.org 70
i+ Err bitreich.org 70
i+ sodium_bin2hex(keystr, sizeof(keystr), key, n); Err bitreich.org 70
i+ Err bitreich.org 70
i+ if (xwrite(fd, keystr, sizeof(keystr) - 1) != sizeof(keystr) - 1) { Err bitreich.org 70
i seterr("failed to write key"); Err bitreich.org 70
i return -1; Err bitreich.org 70
i } Err bitreich.org 70
i@@ -40,14 +45,23 @@ writekey(int fd, unsigned char *key, size_t n) Err bitreich.org 70
i int Err bitreich.org 70
i readkey(int fd, unsigned char *key, size_t n) Err bitreich.org 70
i { Err bitreich.org 70
i+ unsigned char keystr[KEYSIZE * 2 + 1]; Err bitreich.org 70
i+ size_t binlen; Err bitreich.org 70
i+ Err bitreich.org 70
i assert(KEYSIZE == crypto_aead_xchacha20poly1305_ietf_KEYBYTES); Err bitreich.org 70
i if (n != KEYSIZE) { Err bitreich.org 70
i seterr("invalid key size"); Err bitreich.org 70
i return -1; Err bitreich.org 70
i } Err bitreich.org 70
i- if (xread(fd, key, n) != n) { Err bitreich.org 70
i+ Err bitreich.org 70
i+ if (xread(fd, keystr, sizeof(keystr) - 1) != sizeof(keystr) - 1) { Err bitreich.org 70
i seterr("failed to read key"); Err bitreich.org 70
i return -1; Err bitreich.org 70
i } Err bitreich.org 70
i+ keystr[sizeof(keystr) - 1] = '\0'; Err bitreich.org 70
i+ Err bitreich.org 70
i+ sodium_hex2bin(key, n, keystr, sizeof(keystr), NULL, &binlen, NULL); Err bitreich.org 70
i+ if (binlen != KEYSIZE) Err bitreich.org 70
i+ return -1; Err bitreich.org 70
i return 0; Err bitreich.org 70
i } Err bitreich.org 70
.
Response:
text/plain