diff options
author | Jan Glauber <jang@linux.vnet.ibm.com> | 2008-03-06 14:50:20 +0300 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2008-04-21 06:19:11 +0400 |
commit | 604973f1fe41b817c1badb3df2008fe641e50ae6 (patch) | |
tree | dca1cf2234a9d8178e45952f4ff0e95f386def5c /arch/s390/crypto/sha.h | |
parent | 607424d8583365418a337aa51e83403c8bd213ed (diff) | |
download | linux-604973f1fe41b817c1badb3df2008fe641e50ae6.tar.xz |
[CRYPTO] s390: Generic sha_update and sha_final
The sha_{update|final} functions are similar for every sha variant.
Since that is error-prone and redundant replace these functions by
a shared generic implementation for s390.
Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'arch/s390/crypto/sha.h')
-rw-r--r-- | arch/s390/crypto/sha.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/arch/s390/crypto/sha.h b/arch/s390/crypto/sha.h new file mode 100644 index 000000000000..b7a52ab5db97 --- /dev/null +++ b/arch/s390/crypto/sha.h @@ -0,0 +1,34 @@ +/* + * Cryptographic API. + * + * s390 generic implementation of the SHA Secure Hash Algorithms. + * + * Copyright IBM Corp. 2007 + * Author(s): Jan Glauber (jang@de.ibm.com) + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + */ +#ifndef _CRYPTO_ARCH_S390_SHA_H +#define _CRYPTO_ARCH_S390_SHA_H + +#include <linux/crypto.h> +#include <crypto/sha.h> + +/* must be big enough for the largest SHA variant */ +#define SHA_MAX_BLOCK_SIZE SHA256_BLOCK_SIZE + +struct s390_sha_ctx { + u64 count; /* message length in bytes */ + u32 state[8]; + u8 buf[2 * SHA_MAX_BLOCK_SIZE]; + int func; /* KIMD function to use */ +}; + +void s390_sha_update(struct crypto_tfm *tfm, const u8 *data, unsigned int len); +void s390_sha_final(struct crypto_tfm *tfm, u8 *out); + +#endif |