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 32struct shash_desc; 33 34int s390_sha_update(struct shash_desc *desc, const u8 *data, unsigned int len); 35int s390_sha_final(struct shash_desc *desc, u8 *out); 36 37#endif 38