SMOLNET PORTAL home about changes
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
Original URLgopher://bitreich.org/0/scm/dedup/commit/bf808eff120238a6...
Content-Typetext/plain; charset=utf-8