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