1431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah * Use of this source code is governed by a BSD-style license that can be
3431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah * found in the LICENSE file.
4431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah *
5431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah * Utility functions for file and key handling.
6431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah */
7431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah
8431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah#ifndef VBOOT_REFERENCE_FILE_KEYS_H_
9431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah#define VBOOT_REFERENCE_FILE_KEYS_H_
10431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah
115411c7a9f03f91bf2c1cd1cf852db9d4585a05c9Gaurav Shah#include "cryptolib.h"
12431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah
13431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah/* Read file named [input_file] into a buffer and stores the length into
14431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah * [len].
15431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah *
16431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah * Returns a pointer to the buffer. Caller owns the returned pointer and
17431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah * must free it.
18431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah */
19456678b0c45d9fa6ad45d5dc6769051a731207f3Gaurav Shahuint8_t* BufferFromFile(const char* input_file, uint64_t* len);
20431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah
21431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah/* Read a pre-processed RSA Public Key from file [input_file].
22431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah *
23431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah * Returns a pointer to the read key. Caller owns the returned pointer and
24431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah * must free it.
25431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah */
2623a2f3a6c5c706fe4a0ca7c1b6f4bb26eb5ef436Gaurav ShahRSAPublicKey* RSAPublicKeyFromFile(const char* input_file);
27431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah
285411c7a9f03f91bf2c1cd1cf852db9d4585a05c9Gaurav Shah/* Returns the appropriate digest for the data in [input_file]
295411c7a9f03f91bf2c1cd1cf852db9d4585a05c9Gaurav Shah * based on the signature [algorithm].
305411c7a9f03f91bf2c1cd1cf852db9d4585a05c9Gaurav Shah * Caller owns the returned digest and must free it.
315411c7a9f03f91bf2c1cd1cf852db9d4585a05c9Gaurav Shah */
325411c7a9f03f91bf2c1cd1cf852db9d4585a05c9Gaurav Shahuint8_t* DigestFile(char* input_file, int sig_algorithm);
335411c7a9f03f91bf2c1cd1cf852db9d4585a05c9Gaurav Shah
34431b98886ed80b46e404d7288362f8dcdfa9ace3Gaurav Shah#endif  /* VBOOT_REFERENCE_FILE_KEYS_H_ */
35