Skip to content

Commit

Permalink
crypto: lib/sha256 - return void
Browse files Browse the repository at this point in the history
The SHA-256 / SHA-224 library functions can't fail, so remove the
useless return value.

Also long as the declarations are being changed anyway, also fix some
parameter names in the declarations to match the definitions.

Signed-off-by: Eric Biggers <[email protected]>
Reviewed-by: Jason A. Donenfeld <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
  • Loading branch information
ebiggers authored and herbertx committed May 8, 2020
1 parent d099ea6 commit 13855fd
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 31 deletions.
14 changes: 9 additions & 5 deletions crypto/sha256_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,27 +35,31 @@ EXPORT_SYMBOL_GPL(sha256_zero_message_hash);

static int crypto_sha256_init(struct shash_desc *desc)
{
return sha256_init(shash_desc_ctx(desc));
sha256_init(shash_desc_ctx(desc));
return 0;
}

static int crypto_sha224_init(struct shash_desc *desc)
{
return sha224_init(shash_desc_ctx(desc));
sha224_init(shash_desc_ctx(desc));
return 0;
}

int crypto_sha256_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
{
return sha256_update(shash_desc_ctx(desc), data, len);
sha256_update(shash_desc_ctx(desc), data, len);
return 0;
}
EXPORT_SYMBOL(crypto_sha256_update);

static int crypto_sha256_final(struct shash_desc *desc, u8 *out)
{
if (crypto_shash_digestsize(desc->tfm) == SHA224_DIGEST_SIZE)
return sha224_final(shash_desc_ctx(desc), out);
sha224_final(shash_desc_ctx(desc), out);
else
return sha256_final(shash_desc_ctx(desc), out);
sha256_final(shash_desc_ctx(desc), out);
return 0;
}

int crypto_sha256_finup(struct shash_desc *desc, const u8 *data,
Expand Down
18 changes: 6 additions & 12 deletions include/crypto/sha.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ extern int crypto_sha512_finup(struct shash_desc *desc, const u8 *data,
* For details see lib/crypto/sha256.c
*/

static inline int sha256_init(struct sha256_state *sctx)
static inline void sha256_init(struct sha256_state *sctx)
{
sctx->state[0] = SHA256_H0;
sctx->state[1] = SHA256_H1;
Expand All @@ -134,14 +134,11 @@ static inline int sha256_init(struct sha256_state *sctx)
sctx->state[6] = SHA256_H6;
sctx->state[7] = SHA256_H7;
sctx->count = 0;

return 0;
}
extern int sha256_update(struct sha256_state *sctx, const u8 *input,
unsigned int length);
extern int sha256_final(struct sha256_state *sctx, u8 *hash);
void sha256_update(struct sha256_state *sctx, const u8 *data, unsigned int len);
void sha256_final(struct sha256_state *sctx, u8 *out);

static inline int sha224_init(struct sha256_state *sctx)
static inline void sha224_init(struct sha256_state *sctx)
{
sctx->state[0] = SHA224_H0;
sctx->state[1] = SHA224_H1;
Expand All @@ -152,11 +149,8 @@ static inline int sha224_init(struct sha256_state *sctx)
sctx->state[6] = SHA224_H6;
sctx->state[7] = SHA224_H7;
sctx->count = 0;

return 0;
}
extern int sha224_update(struct sha256_state *sctx, const u8 *input,
unsigned int length);
extern int sha224_final(struct sha256_state *sctx, u8 *hash);
void sha224_update(struct sha256_state *sctx, const u8 *data, unsigned int len);
void sha224_final(struct sha256_state *sctx, u8 *out);

#endif
6 changes: 4 additions & 2 deletions include/crypto/sha256_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,16 @@ static inline int sha224_base_init(struct shash_desc *desc)
{
struct sha256_state *sctx = shash_desc_ctx(desc);

return sha224_init(sctx);
sha224_init(sctx);
return 0;
}

static inline int sha256_base_init(struct shash_desc *desc)
{
struct sha256_state *sctx = shash_desc_ctx(desc);

return sha256_init(sctx);
sha256_init(sctx);
return 0;
}

static inline int sha256_base_do_update(struct shash_desc *desc,
Expand Down
20 changes: 8 additions & 12 deletions lib/crypto/sha256.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ static void sha256_transform(u32 *state, const u8 *input)
memzero_explicit(W, 64 * sizeof(u32));
}

int sha256_update(struct sha256_state *sctx, const u8 *data, unsigned int len)
void sha256_update(struct sha256_state *sctx, const u8 *data, unsigned int len)
{
unsigned int partial, done;
const u8 *src;
Expand All @@ -232,18 +232,16 @@ int sha256_update(struct sha256_state *sctx, const u8 *data, unsigned int len)
partial = 0;
}
memcpy(sctx->buf + partial, src, len - done);

return 0;
}
EXPORT_SYMBOL(sha256_update);

int sha224_update(struct sha256_state *sctx, const u8 *data, unsigned int len)
void sha224_update(struct sha256_state *sctx, const u8 *data, unsigned int len)
{
return sha256_update(sctx, data, len);
sha256_update(sctx, data, len);
}
EXPORT_SYMBOL(sha224_update);

static int __sha256_final(struct sha256_state *sctx, u8 *out, int digest_words)
static void __sha256_final(struct sha256_state *sctx, u8 *out, int digest_words)
{
__be32 *dst = (__be32 *)out;
__be64 bits;
Expand All @@ -268,19 +266,17 @@ static int __sha256_final(struct sha256_state *sctx, u8 *out, int digest_words)

/* Zeroize sensitive information. */
memset(sctx, 0, sizeof(*sctx));

return 0;
}

int sha256_final(struct sha256_state *sctx, u8 *out)
void sha256_final(struct sha256_state *sctx, u8 *out)
{
return __sha256_final(sctx, out, 8);
__sha256_final(sctx, out, 8);
}
EXPORT_SYMBOL(sha256_final);

int sha224_final(struct sha256_state *sctx, u8 *out)
void sha224_final(struct sha256_state *sctx, u8 *out)
{
return __sha256_final(sctx, out, 7);
__sha256_final(sctx, out, 7);
}
EXPORT_SYMBOL(sha224_final);

Expand Down

0 comments on commit 13855fd

Please sign in to comment.