1/* 2 * Cryptographic API. 3 * 4 * s390 generic implementation of the SHA Secure Hash Algorithms. 5 * 6 * Copyright IBM Corp. 2007 7 * Author(s): Jan Glauber (jang@de.ibm.com) 8 * 9 * This program is free software; you can redistribute it and/or modify it 10 * under the terms of the GNU General Public License as published by the Free 11 * Software Foundation; either version 2 of the License, or (at your option) 12 * any later version. 13 * 14 */ 15#ifndef _CRYPTO_ARCH_S390_SHA_H 16#define _CRYPTO_ARCH_S390_SHA_H 17 18#include <linux/crypto.h> 19#include <crypto/sha.h> 20 21/* must be big enough for the largest SHA variant */ 22#define SHA_MAX_STATE_SIZE 16 23#define SHA_MAX_BLOCK_SIZE SHA512_BLOCK_SIZE 24 25struct s390_sha_ctx { 26 u64 count; /* message length in bytes */ 27 u32 state[SHA_MAX_STATE_SIZE]; 28 u8 buf[2 * SHA_MAX_BLOCK_SIZE]; 29 int func; /* KIMD function to use */ 30}; 31 32void s390_sha_update(struct crypto_tfm *tfm, const u8 *data, unsigned int len); 33void s390_sha_final(struct crypto_tfm *tfm, u8 *out); 34 35#endif 36