1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright (c) 2011 The Chromium OS Authors.
4 * (C) Copyright 2010 - 2011 NVIDIA Corporation <www.nvidia.com>
5 */
6
7#ifndef _CRYPTO_H_
8#define _CRYPTO_H_
9
10/**
11 * Sign a block of data
12 *
13 * \param source	Source data
14 * \param length	Size of source data
15 * \param signature	Destination address for signature, AES_KEY_LENGTH bytes
16 */
17int sign_data_block(u8 *source, unsigned int length, u8 *signature);
18
19/**
20 * Sign an encrypted block of data
21 *
22 * \param source	Source data
23 * \param length	Size of source data
24 * \param signature	Destination address for signature, AES_KEY_LENGTH bytes
25 * \param key		AES128 encryption key
26 */
27int sign_enc_data_block(u8 *source, unsigned int length, u8 *signature, u8 *key);
28
29/**
30 * Encrypt a block of data
31 *
32 * \param source	Source data
33 * \param length	Size of source data
34 * \param key		AES128 encryption key
35 */
36int encrypt_data_block(u8 *source, unsigned int length, u8 *key);
37
38/**
39 * Decrypt a block of data
40 *
41 * \param source	Source data
42 * \param length	Size of source data
43 * \param key		AES128 encryption key
44 */
45int decrypt_data_block(u8 *source, unsigned int length, u8 *key);
46
47#endif /* #ifndef _CRYPTO_H_ */
48