Files
OpenCellular/host/lib21/include/host_signature2.h
Randall Spangler 308d254092 vboot2: Get rid of extra '2' at end of new struct names
Now that lib20 and lib21 are distinct, they can have overlapping
struct names.  This will be cleaner in the long run, since vboot 2.0
(lib20) is just a temporary stepping stone to vboot 2.1 (lib21).  It
would be a shame to need to carry around the overhead of that extra
digit forever.

No functional changes, just a lot of renaming.

BUG=chromium:423882
BRANCH=none
TEST=make runtests && VBOOT2=1 make runtests (works with/withoug VBOOT2 flag)
     And compile firmware for veyron_pinky

Change-Id: I25f348fd31e32d08ca576836dfdd1278828765a1
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/233183
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
2014-12-05 00:02:00 +00:00

89 lines
2.8 KiB
C

/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
* Host-side functions for verified boot key structures
*/
#ifndef VBOOT_REFERENCE_HOST_SIGNATURE2_H_
#define VBOOT_REFERENCE_HOST_SIGNATURE2_H_
#include "2struct.h"
struct vb2_private_key;
/**
* Sign data buffer
*
* @param sig_ptr On success, points to a newly allocated signature.
* Caller is responsible for calling free() on this.
* @param data Pointer to data to sign
* @param size Size of data to sign in bytes
* @param key Private key to use to sign data
* @param desc Optional description for signature. If NULL, the
* key description will be used.
* @return VB2_SUCCESS, or non-zero error code on failure.
*/
int vb2_sign_data(struct vb2_signature **sig_ptr,
const uint8_t *data,
uint32_t size,
const struct vb2_private_key *key,
const char *desc);
/**
* Calculate the signature size for a private key.
*
* @param size_ptr On success, contains the signature size in bytes.
* @param key Key to calculate signature length from.
* @param desc Optional description for signature. If NULL, the
* key description will be used.
* @return VB2_SUCCESS, or non-zero error code on failure.
*/
int vb2_sig_size_for_key(uint32_t *size_ptr,
const struct vb2_private_key *key,
const char *desc);
/**
* Calculate the total signature size for a list of keys.
*
* @param size_ptr On success, contains the signature size in bytes.
* @param key_list List of keys to calculate signature length from.
* @param key_count Number of keys.
* @return VB2_SUCCESS, or non-zero error code on failure.
*/
int vb2_sig_size_for_keys(uint32_t *size_ptr,
const struct vb2_private_key **key_list,
uint32_t key_count);
/**
* Sign object with a key.
*
* @param buf Buffer containing object to sign, starting with
* common header
* @param sig_offset Offset in buffer at which to store signature. All
* data before this in the buffer will be signed.
* @param key Key to sign object with
* @param desc If non-null, description to use for signature
*/
int vb2_sign_object(uint8_t *buf,
uint32_t sig_offset,
const struct vb2_private_key *key,
const char *desc);
/**
* Sign object with list of keys.
*
* @param buf Buffer containing object to sign, starting with
* common header
* @param sig_offset Offset to start signatures. All data before this
* in the buffer will be signed.
* @param key_list List of keys to sign object with
* @param key_count Number of keys in list
*/
int vb2_sign_object_multiple(uint8_t *buf,
uint32_t sig_offset,
const struct vb2_private_key **key_list,
uint32_t key_count);
#endif /* VBOOT_REFERENCE_HOST_SIGNATURE2_H_ */