Commit 11d5674f authored by Herbert Xu's avatar Herbert Xu
Browse files

crypto: hash - Make HASH_MAX_DESCSIZE a bit more obvious



Move S390_SHA_CTX_SIZE into crypto/hash.h so that the derivation
of HASH_MAX_DESCSIZE is less cryptic.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 34c065fe
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -10,14 +10,15 @@
#ifndef _CRYPTO_ARCH_S390_SHA_H
#define _CRYPTO_ARCH_S390_SHA_H

#include <crypto/hash.h>
#include <crypto/sha2.h>
#include <crypto/sha3.h>
#include <linux/build_bug.h>
#include <linux/types.h>

/* must be big enough for the largest SHA variant */
#define CPACF_MAX_PARMBLOCK_SIZE	SHA3_STATE_SIZE
#define SHA_MAX_BLOCK_SIZE		SHA3_224_BLOCK_SIZE
#define S390_SHA_CTX_SIZE		sizeof(struct s390_sha_ctx)

struct s390_sha_ctx {
	u64 count;		/* message length in bytes */
@@ -42,4 +43,9 @@ int s390_sha_update_blocks(struct shash_desc *desc, const u8 *data,
int s390_sha_finup(struct shash_desc *desc, const u8 *src, unsigned int len,
		   u8 *out);

static inline void __check_s390_sha_ctx_size(void)
{
	BUILD_BUG_ON(S390_SHA_CTX_SIZE != sizeof(struct s390_sha_ctx));
}

#endif
+14 −2
Original line number Diff line number Diff line
@@ -177,14 +177,26 @@ struct shash_desc {

#define HASH_MAX_DIGESTSIZE	 64

/*
 * The size of a core hash state and a partial block.  The final byte
 * is the length of the partial block.
 */
#define HASH_STATE_AND_BLOCK(state, block) ((state) + (block) + 1)


/* Worst case is sha3-224. */
#define HASH_MAX_STATESIZE	 200 + 144 + 1
#define HASH_MAX_STATESIZE	 HASH_STATE_AND_BLOCK(200, 144)

/* This needs to match arch/s390/crypto/sha.h. */
#define S390_SHA_CTX_SIZE	216

/*
 * Worst case is hmac(sha3-224-s390).  Its context is a nested 'shash_desc'
 * containing a 'struct s390_sha_ctx'.
 */
#define HASH_MAX_DESCSIZE	(sizeof(struct shash_desc) + 361)
#define SHA3_224_S390_DESCSIZE	HASH_STATE_AND_BLOCK(S390_SHA_CTX_SIZE, 144)
#define HASH_MAX_DESCSIZE	(sizeof(struct shash_desc) + \
				 SHA3_224_S390_DESCSIZE)
#define MAX_SYNC_HASH_REQSIZE	(sizeof(struct ahash_request) + \
				 HASH_MAX_DESCSIZE)