1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /* Copyright (c) 2010 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.
- */
- #ifndef VBOOT_REFERENCE_HOST_SIGNATURE_H_
- #define VBOOT_REFERENCE_HOST_SIGNATURE_H_
- #include "host_key.h"
- #include "utility.h"
- #include "vboot_struct.h"
- struct vb2_private_key;
- struct vb2_signature;
- /**
- * Initialize a signature struct.
- *
- * @param sig Structure to initialize
- * @param sig_data Pointer to signature data buffer (after sig)
- * @param sig_size Size of signature data buffer in bytes
- * @param data_size Amount of data signed in bytes
- */
- void vb2_init_signature(struct vb2_signature *sig, uint8_t *sig_data,
- uint32_t sig_size, uint32_t data_size);
- /**
- * Allocate a new signature.
- *
- * @param sig_size Size of signature in bytes
- * @param data_size Amount of data signed in bytes
- *
- * @return The signature or NULL if error. Caller must free() it.
- */
- struct vb2_signature *vb2_alloc_signature(uint32_t sig_size,
- uint32_t data_size);
- /**
- * Copy a signature.
- *
- * @param dest Destination signature
- * @param src Source signature
- *
- * @return VB2_SUCCESS, or non-zero if error. */
- int vb2_copy_signature(struct vb2_signature *dest,
- const struct vb2_signature *src);
- /**
- * Calculate a SHA-512 digest-only signature.
- *
- * @param data Pointer to data to hash
- * @param size Length of data in bytes
- *
- * @return The signature, or NULL if error. Caller must free() it.
- */
- struct vb2_signature *vb2_sha512_signature(const uint8_t *data, uint32_t size);
- /**
- * Calculate a signature for the data using the specified key.
- *
- * @param data Pointer to data to sign
- * @param size Length of data in bytes
- * @param key Private key to use to sign data
- *
- * @return The signature, or NULL if error. Caller must free() it.
- */
- struct vb2_signature *vb2_calculate_signature(
- const uint8_t *data, uint32_t size,
- const struct vb2_private_key *key);
- /**
- * Calculate a signature for the data using an external signer.
- *
- * @param data Pointer to data to sign
- * @param size Length of data in bytes
- * @param key_file Name of file containing private key
- * @param key_algorithm Key algorithm
- * @param external_signer Path to external signer program
- *
- * @return The signature, or NULL if error. Caller must free() it.
- */
- struct vb2_signature *vb2_external_signature(const uint8_t *data,
- uint32_t size,
- const char *key_file,
- uint32_t key_algorithm,
- const char *external_signer);
- #endif /* VBOOT_REFERENCE_HOST_SIGNATURE_H_ */
|