SMOLNET PORTAL home about changes
iencrypt: Use a switch instead of an if/elseif construct - 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 5bb4a9db996f3e7265fe0588fa03125a28cd9051	/scm/dedup/commit/5bb4a9db996f3e7265fe0588fa03125a28cd9051.gph	bitreich.org	70
1parent e401f4cd871cf10bbcaf31eee682c3ae34454b5d	/scm/dedup/commit/e401f4cd871cf10bbcaf31eee682c3ae34454b5d.gph	bitreich.org	70
hAuthor: sin <sin@2f30.org>	URL:mailto:sin@2f30.org	bitreich.org	70
iDate:   Thu, 16 May 2019 13:58:55 +0300	Err	bitreich.org	70
i	Err	bitreich.org	70
iencrypt: Use a switch instead of an if/elseif construct	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M bcompress.c                         |       3 ++-	Err	bitreich.org	70
i  M bencrypt.c                          |      58 +++++++++++++++----------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 30 insertions(+), 31 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/bcompress.c b/bcompress.c	/scm/dedup/file/bcompress.c.gph	bitreich.org	70
i@@ -208,10 +208,11 @@ bcput(struct bctx *bctx, void *buf, size_t n, unsigned char *md)	Err	bitreich.org	70
i                 break;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        /* Prepend compression descriptor */	Err	bitreich.org	70
i+        /* Prepare compression descriptor */	Err	bitreich.org	70
i         cd.type = cctx->type;	Err	bitreich.org	70
i         memset(cd.reserved, 0, sizeof(cd.reserved));	Err	bitreich.org	70
i         cd.size = cn;	Err	bitreich.org	70
i+        /* Prepend compression descriptor */	Err	bitreich.org	70
i         packcd(cbuf, &cd);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (bencryptops()->put(bctx, cbuf, CDSIZE + cn, md) < 0) {	Err	bitreich.org	70
1diff --git a/bencrypt.c b/bencrypt.c	/scm/dedup/file/bencrypt.c.gph	bitreich.org	70
i@@ -181,17 +181,18 @@ beput(struct bctx *bctx, void *buf, size_t n, unsigned char *md)	Err	bitreich.org	70
i         struct ectx *ectx;	Err	bitreich.org	70
i         struct ed ed;	Err	bitreich.org	70
i         unsigned char *ebuf;	Err	bitreich.org	70
i+        unsigned long long elen;	Err	bitreich.org	70
i         size_t en;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         /* Calculate size of encrypted block */	Err	bitreich.org	70
i         ectx = bctx->ectx;	Err	bitreich.org	70
i-        if (ectx->type == EDNONETYPE) {	Err	bitreich.org	70
i+        switch (ectx->type) {	Err	bitreich.org	70
i+        case EDNONETYPE:	Err	bitreich.org	70
i                 en = n;	Err	bitreich.org	70
i-        } else if (ectx->type == EDCHACHATYPE) {	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i+        case EDCHACHATYPE:	Err	bitreich.org	70
i                 en = n + crypto_aead_xchacha20poly1305_ietf_ABYTES;	Err	bitreich.org	70
i-        } else {	Err	bitreich.org	70
i-                seterr("invalid encryption type: %d", ectx->type);	Err	bitreich.org	70
i-                return -1;	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         ebuf = malloc(EDSIZE + en);	Err	bitreich.org	70
i@@ -200,36 +201,35 @@ beput(struct bctx *bctx, void *buf, size_t n, unsigned char *md)	Err	bitreich.org	70
i                 return -1;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        /* Prepend the encryption descriptor */	Err	bitreich.org	70
i+        /* Prepare encryption descriptor */	Err	bitreich.org	70
i         ed.type = ectx->type;	Err	bitreich.org	70
i         memset(ed.reserved, 0, sizeof(ed.reserved));	Err	bitreich.org	70
i         ed.size = en;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i         /* Fill nonce buffer */	Err	bitreich.org	70
i-        if (ectx->type == EDNONETYPE) {	Err	bitreich.org	70
i+        switch (ectx->type) {	Err	bitreich.org	70
i+        case EDNONETYPE:	Err	bitreich.org	70
i                 memset(ed.nonce, 0, sizeof(ed.nonce));	Err	bitreich.org	70
i-        } else if (ectx->type == EDCHACHATYPE) {	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i+        case EDCHACHATYPE:	Err	bitreich.org	70
i                 randombytes_buf(ed.nonce, sizeof(ed.nonce));	Err	bitreich.org	70
i-        } else {	Err	bitreich.org	70
i-                free(ebuf);	Err	bitreich.org	70
i-                seterr("invalid encryption type: %d", ectx->type);	Err	bitreich.org	70
i-                return -1;	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        /* Prepend encryption descriptor */	Err	bitreich.org	70
i         packed(ebuf, &ed);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         /* Encrypt block */	Err	bitreich.org	70
i-        if (ectx->type == EDNONETYPE) {	Err	bitreich.org	70
i+        switch (ectx->type) {	Err	bitreich.org	70
i+        case EDNONETYPE:	Err	bitreich.org	70
i                 memcpy(&ebuf[EDSIZE], buf, en);	Err	bitreich.org	70
i-        } else if (ectx->type == EDCHACHATYPE) {	Err	bitreich.org	70
i-                unsigned long long elen;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i+        case EDCHACHATYPE:	Err	bitreich.org	70
i                 crypto_aead_xchacha20poly1305_ietf_encrypt(&ebuf[EDSIZE], &elen,	Err	bitreich.org	70
i                                                            buf, n, ebuf, EDSIZE, NULL,	Err	bitreich.org	70
i                                                            ed.nonce, ectx->key);	Err	bitreich.org	70
i                 assert(elen == en);	Err	bitreich.org	70
i-        } else {	Err	bitreich.org	70
i-                free(ebuf);	Err	bitreich.org	70
i-                seterr("invalid encryption type: %d", ectx->type);	Err	bitreich.org	70
i-                return -1;	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (bstorageops()->put(bctx, ebuf, EDSIZE + en, md) < 0) {	Err	bitreich.org	70
i@@ -245,7 +245,9 @@ static int	Err	bitreich.org	70
i beget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         struct ed ed;	Err	bitreich.org	70
i+        struct ectx *ectx;	Err	bitreich.org	70
i         unsigned char *ebuf;	Err	bitreich.org	70
i+        unsigned long long dlen;	Err	bitreich.org	70
i         size_t dn, size;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         /* Calculate maximum size of encrypted block */	Err	bitreich.org	70
i@@ -265,7 +267,9 @@ beget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n)	Err	bitreich.org	70
i         unpacked(ebuf, &ed);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         /* Decrypt block */	Err	bitreich.org	70
i-        if (ed.type == EDNONETYPE) {	Err	bitreich.org	70
i+        ectx = bctx->ectx;	Err	bitreich.org	70
i+        switch (ed.type) {	Err	bitreich.org	70
i+        case EDNONETYPE:	Err	bitreich.org	70
i                 dn = ed.size;	Err	bitreich.org	70
i                 if (*n < dn) {	Err	bitreich.org	70
i                         free(ebuf);	Err	bitreich.org	70
i@@ -273,10 +277,8 @@ beget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n)	Err	bitreich.org	70
i                         return -1;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i                 memcpy(buf, &ebuf[EDSIZE], dn);	Err	bitreich.org	70
i-        } else if (ed.type == EDCHACHATYPE) {	Err	bitreich.org	70
i-                struct ectx *ectx;	Err	bitreich.org	70
i-                unsigned long long dlen;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i+        case EDCHACHATYPE:	Err	bitreich.org	70
i                 dn = ed.size - crypto_aead_xchacha20poly1305_ietf_ABYTES;	Err	bitreich.org	70
i                 if (*n < dn) {	Err	bitreich.org	70
i                         free(ebuf);	Err	bitreich.org	70
i@@ -284,7 +286,6 @@ beget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n)	Err	bitreich.org	70
i                         return -1;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                ectx = bctx->ectx;	Err	bitreich.org	70
i                 if (crypto_aead_xchacha20poly1305_ietf_decrypt(buf, &dlen,	Err	bitreich.org	70
i                                                                NULL,	Err	bitreich.org	70
i                                                                &ebuf[EDSIZE], ed.size,	Err	bitreich.org	70
i@@ -296,10 +297,7 @@ beget(struct bctx *bctx, unsigned char *md, void *buf, size_t *n)	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                 assert(dn == dlen);	Err	bitreich.org	70
i-        } else {	Err	bitreich.org	70
i-                free(ebuf);	Err	bitreich.org	70
i-                seterr("invalid encryption type: %d", ed.type);	Err	bitreich.org	70
i-                return -1;	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         free(ebuf);	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/dedup/commit/5bb4a9db996f3e72...
Content-Typetext/plain; charset=utf-8