blob: 9aea39e272072725ea0dcfff77aad2c956cc4667 [file] [log] [blame]
/* Copyright (C) 2012 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by the GPL v2 license that can
* be found in the LICENSE file.
*
* Parts of this file are derived from the Linux kernel from the file with
* the same name and path under include/.
*/
#ifndef VERITY_INCLUDE_LINUX_CRYPTO_H_
#define VERITY_INCLUDE_LINUX_CRYPTO_H_
#include <linux/compiler.h>
#include <linux/string.h>
#include <linux/kernel.h>
#define CRYPTO_ALG_TYPE_SHASH 0
#define CRYPTO_MINALIGN_ATTR __attribute__ ((__aligned__(32)))
#define CRYPTO_MAX_ALG_NAME 64
#include <linux/types.h>
struct crypto_alg {
u32 cra_flags;
unsigned int cra_blocksize;
char cra_name[CRYPTO_MAX_ALG_NAME];
char cra_driver_name[CRYPTO_MAX_ALG_NAME];
void *cra_module;
};
struct hash_tfm;
struct hash_desc {
struct hash_tfm *tfm;
};
struct scatterlist;
struct hash_tfm *crypto_alloc_hash(const char *alg_name, int a, int b);
void crypto_free_hash(struct hash_tfm *tfm);
unsigned int crypto_hash_digestsize(struct hash_tfm *tfm);
int crypto_hash_init(struct hash_desc *h);
int crypto_hash_digest(struct hash_desc *h, struct scatterlist *sg,
unsigned int sz, u8 *dst);
int crypto_hash_update(struct hash_desc *h, struct scatterlist *sg,
unsigned int size);
int crypto_hash_final(struct hash_desc *h, u8 *dst);
#endif /* VERITY_INCLUDE_LINUX_CRYPTO_H_ */