| Index: src/platform/vboot_reference/vboot_firmware/include/kernel_image_fw.h
 | 
| diff --git a/src/platform/vboot_reference/vboot_firmware/include/kernel_image_fw.h b/src/platform/vboot_reference/vboot_firmware/include/kernel_image_fw.h
 | 
| index 17458e6edfe5770f40d53a42d29e3975eb843850..03bcf858e2112681a2e29ff69f848594efa092f9 100644
 | 
| --- a/src/platform/vboot_reference/vboot_firmware/include/kernel_image_fw.h
 | 
| +++ b/src/platform/vboot_reference/vboot_firmware/include/kernel_image_fw.h
 | 
| @@ -49,15 +49,12 @@ typedef struct KernelImage {
 | 
|    uint64_t bootloader_offset;  /* Offset of bootloader in kernel_data. */
 | 
|    uint64_t bootloader_size;  /* Size of bootloader in bytes. */
 | 
|    uint64_t padded_header_size;  /* start of kernel_data in disk partition */
 | 
| +  uint8_t* kernel_signature;  /* Signature on [kernel_data] below.
 | 
| +                               * NOTE: This is only considered valid
 | 
| +                               * if preamble_signature successfully verifies. */
 | 
|    /* end of preamble */
 | 
| -
 | 
| -  uint8_t* preamble_signature;  /* Signature on the kernel preamble. */
 | 
| -
 | 
| -  /* The kernel signature comes first as it may allow us to parallelize
 | 
| -   * the kernel data fetch and RSA public key operation.
 | 
| -   */
 | 
| -  uint8_t* kernel_signature;  /* Signature on the concatenation of
 | 
| -                               * the kernel preamble and [kernel_data]. */
 | 
| +  uint8_t* preamble_signature;  /* signature on preamble, (includes
 | 
| +                                   [kernel_signature]) */
 | 
|    uint8_t* kernel_data;  /* Actual kernel data. */
 | 
|  
 | 
|  } KernelImage;
 | 
| @@ -74,8 +71,9 @@ typedef struct KernelImage {
 | 
|  
 | 
|  extern char* kVerifyKernelErrors[VERIFY_KERNEL_MAX];
 | 
|  
 | 
| -/* Returns the length of the verified boot kernel preamble. */
 | 
| -uint64_t GetKernelPreambleLen(void);
 | 
| +/* Returns the length of the verified boot kernel preamble based on
 | 
| + * kernel signing algorithm [algorithm]. */
 | 
| +uint64_t GetKernelPreambleLen(int algorithm);
 | 
|  
 | 
|  /* Returns the length of the Kernel Verified Boot header excluding
 | 
|   * [kernel_data].
 | 
| @@ -111,16 +109,15 @@ int VerifyKernelPreamble(RSAPublicKey* kernel_sign_key,
 | 
|                           int algorithm,
 | 
|                           uint64_t* kernel_len);
 | 
|  
 | 
| -/* Checks the signature on the kernel data at location [kernel_data_start].
 | 
| - * The length of the actual kernel data is kernel_len and it is assumed to
 | 
| - * be prepended with the signature whose size depends on the signature_algorithm
 | 
| - * [algorithm].
 | 
| +/* Checks [kernel_signature] on the kernel data at location [kernel_data]. The
 | 
| + * signature is assumed to be generated using algorithm [algorithm].
 | 
| + * The length of the kernel data is [kernel_len].
 | 
|   *
 | 
|   * Return 0 on success, error code on failure.
 | 
|   */
 | 
|  int VerifyKernelData(RSAPublicKey* kernel_sign_key,
 | 
| -                     const uint8_t* kernel_config_start,
 | 
| -                     const uint8_t* kernel_data_start,
 | 
| +                     const uint8_t* kernel_signature,
 | 
| +                     const uint8_t* kernel_data,
 | 
|                       uint64_t kernel_len,
 | 
|                       int algorithm);
 | 
|  
 | 
| @@ -128,8 +125,7 @@ int VerifyKernelData(RSAPublicKey* kernel_sign_key,
 | 
|   * using the firmware public key [firmware_key_blob]. If [dev_mode] is 1
 | 
|   * (active), then key header verification is skipped.
 | 
|   *
 | 
| - * Fills in a pointer to preamble blob within [kernel_header_blob] in
 | 
| - * [preamble_blob], pointer to expected kernel data signature
 | 
| + * Fills in a pointer to expected kernel data signature
 | 
|   * within [kernel_header_blob] in [expected_kernel_signature].
 | 
|   *
 | 
|   * The signing key to use for kernel data verification is returned in
 | 
| @@ -142,7 +138,6 @@ int VerifyKernelData(RSAPublicKey* kernel_sign_key,
 | 
|  int VerifyKernelHeader(const uint8_t* firmware_key_blob,
 | 
|                         const uint8_t* kernel_header_blob,
 | 
|                         const int dev_mode,
 | 
| -                       const uint8_t** preamble_blob,
 | 
|                         const uint8_t** expected_kernel_signature,
 | 
|                         RSAPublicKey** kernel_sign_key,
 | 
|                         int* kernel_sign_algorithm,
 | 
| 
 |