blob: 240803f3258ab4b83f981c288e6c464901ad7453 [file] [log] [blame]
Shashank Mittalcd98d472011-08-02 14:29:24 -07001/*
Sridhar Parasuramd39a4282015-08-29 09:54:28 -07002 * Copyright (c) 2011,2014-2015 The Linux Foundation. All rights reserved.
Shashank Mittalcd98d472011-08-02 14:29:24 -07003 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in
11 * the documentation and/or other materials provided with the
12 * distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
17 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
18 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
20 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
21 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
22 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
24 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 */
27#ifndef __IMAGE_VERIFY_H
28#define __IMAGE_VERIFY_H
29
Sridhar Parasuramd39a4282015-08-29 09:54:28 -070030#include <x509.h>
31
Shashank Mittalcd98d472011-08-02 14:29:24 -070032#define SHA1_SIZE 16
33#define SHA256_SIZE 32
34/* For keys of length 2048 bits */
35#define SIGNATURE_SIZE 256
36
Ajay Dudanib01e5062011-12-03 23:23:42 -080037static int image_decrypt_signature(unsigned char *signature_ptr,
38 unsigned char *plain_text);
39int image_verify(unsigned char *image_ptr,
40 unsigned char *signature_ptr,
41 unsigned int image_size, unsigned hash_type);
Sridhar Parasuramd39a4282015-08-29 09:54:28 -070042
43/* Decrypt signature with RSA public key */
44int image_decrypt_signature_rsa(unsigned char *signature_ptr,
45 unsigned char *plain_text, RSA *rsa_key);
46
47/* Find hash of image */
48void image_find_digest(unsigned char *image_ptr, unsigned int image_size,
49 unsigned hash_type, unsigned char *digest);
50void save_kernel_hash_cmd(void *digest);
51void save_kernel_hash(unsigned char *digest, unsigned hash_type);
Shashank Mittalcd98d472011-08-02 14:29:24 -070052#endif