From: David Sterba <dsterba@suse.com>
To: linux-crypto@vger.kernel.org
Cc: ebiggers@kernel.org, David Sterba <dsterba@suse.com>
Subject: [PATCH 6/7] crypto: blake2b: merge _update to api callback
Date: Wed, 6 Nov 2019 14:48:30 +0100 [thread overview]
Message-ID: <7b2cccb7804268cdd849b6ba182d2a295645bb5a.1573047517.git.dsterba@suse.com> (raw)
In-Reply-To: <cover.1573047517.git.dsterba@suse.com>
Now that there's only one call to blake2b_update, we can merge it to the
callback and simplify. The empty input check is split and the rest of
code un-indented.
Signed-off-by: David Sterba <dsterba@suse.com>
---
crypto/blake2b_generic.c | 66 ++++++++++++++++++----------------------
1 file changed, 30 insertions(+), 36 deletions(-)
diff --git a/crypto/blake2b_generic.c b/crypto/blake2b_generic.c
index 463ac597ef04..b05dfc2724e8 100644
--- a/crypto/blake2b_generic.c
+++ b/crypto/blake2b_generic.c
@@ -137,35 +137,6 @@ static void blake2b_compress(struct blake2b_state *S,
#undef G
#undef ROUND
-static void blake2b_update(struct blake2b_state *S, const void *pin, size_t inlen)
-{
- const u8 *in = (const u8 *)pin;
-
- if (inlen > 0) {
- size_t left = S->buflen;
- size_t fill = BLAKE2B_BLOCKBYTES - left;
-
- if (inlen > fill) {
- S->buflen = 0;
- /* Fill buffer */
- memcpy(S->buf + left, in, fill);
- blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);
- /* Compress */
- blake2b_compress(S, S->buf);
- in += fill;
- inlen -= fill;
- while (inlen > BLAKE2B_BLOCKBYTES) {
- blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);
- blake2b_compress(S, in);
- in += BLAKE2B_BLOCKBYTES;
- inlen -= BLAKE2B_BLOCKBYTES;
- }
- }
- memcpy(S->buf + S->buflen, in, inlen);
- S->buflen += inlen;
- }
-}
-
struct digest_tfm_ctx {
u8 key[BLAKE2B_KEYBYTES];
unsigned int keylen;
@@ -210,12 +181,35 @@ static int blake2b_init(struct shash_desc *desc)
return 0;
}
-static int digest_update(struct shash_desc *desc, const u8 *data,
- unsigned int length)
+static int blake2b_update(struct shash_desc *desc, const u8 *in,
+ unsigned int inlen)
{
struct blake2b_state *state = shash_desc_ctx(desc);
+ const size_t left = state->buflen;
+ const size_t fill = BLAKE2B_BLOCKBYTES - left;
+
+ if (!inlen)
+ return 0;
+
+ if (inlen > fill) {
+ state->buflen = 0;
+ /* Fill buffer */
+ memcpy(state->buf + left, in, fill);
+ blake2b_increment_counter(state, BLAKE2B_BLOCKBYTES);
+ /* Compress */
+ blake2b_compress(state, state->buf);
+ in += fill;
+ inlen -= fill;
+ while (inlen > BLAKE2B_BLOCKBYTES) {
+ blake2b_increment_counter(state, BLAKE2B_BLOCKBYTES);
+ blake2b_compress(state, in);
+ in += BLAKE2B_BLOCKBYTES;
+ inlen -= BLAKE2B_BLOCKBYTES;
+ }
+ }
+ memcpy(state->buf + state->buflen, in, inlen);
+ state->buflen += inlen;
- blake2b_update(state, data, length);
return 0;
}
@@ -252,7 +246,7 @@ static struct shash_alg blake2b_algs[] = {
.digestsize = BLAKE2B_160_DIGEST_SIZE,
.setkey = digest_setkey,
.init = blake2b_init,
- .update = digest_update,
+ .update = blake2b_update,
.final = blake2b_final,
.descsize = sizeof(struct blake2b_state),
}, {
@@ -266,7 +260,7 @@ static struct shash_alg blake2b_algs[] = {
.digestsize = BLAKE2B_256_DIGEST_SIZE,
.setkey = digest_setkey,
.init = blake2b_init,
- .update = digest_update,
+ .update = blake2b_update,
.final = blake2b_final,
.descsize = sizeof(struct blake2b_state),
}, {
@@ -280,7 +274,7 @@ static struct shash_alg blake2b_algs[] = {
.digestsize = BLAKE2B_384_DIGEST_SIZE,
.setkey = digest_setkey,
.init = blake2b_init,
- .update = digest_update,
+ .update = blake2b_update,
.final = blake2b_final,
.descsize = sizeof(struct blake2b_state),
}, {
@@ -294,7 +288,7 @@ static struct shash_alg blake2b_algs[] = {
.digestsize = BLAKE2B_512_DIGEST_SIZE,
.setkey = digest_setkey,
.init = blake2b_init,
- .update = digest_update,
+ .update = blake2b_update,
.final = blake2b_final,
.descsize = sizeof(struct blake2b_state),
}
--
2.23.0
next prev parent reply other threads:[~2019-11-06 13:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-06 13:48 [PATCH 0/7] BLAKE2b cleanups David Sterba
2019-11-06 13:48 ` [PATCH 1/7] crypto: blake2b: merge _final implementation to callback David Sterba
2019-11-06 13:48 ` [PATCH 2/7] crypto: blake2b: merge blake2 init to api callback David Sterba
2019-11-06 13:48 ` [PATCH 3/7] crypto: blake2b: simplify key init David Sterba
2019-11-06 13:48 ` [PATCH 4/7] crypto: blake2b: delete unused structs or members David Sterba
2019-11-06 13:48 ` [PATCH 5/7] crypto: blake2b: open code set last block helper David Sterba
2019-11-06 13:48 ` David Sterba [this message]
2019-11-06 13:48 ` [PATCH 7/7] crypto: blake2b: rename tfm context David Sterba
2019-11-08 2:13 ` [PATCH 0/7] BLAKE2b cleanups Eric Biggers
2019-11-09 23:05 ` David Sterba
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7b2cccb7804268cdd849b6ba182d2a295645bb5a.1573047517.git.dsterba@suse.com \
--to=dsterba@suse.com \
--cc=ebiggers@kernel.org \
--cc=linux-crypto@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).