#!/bin/bash

# Copyright (c) 2011 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.

# Install an update payload verification public key to the image.

# Load common constants and variables.
. "$(dirname "$0")/common.sh"

main() {
  set -e

  local image="$1"
  local pub_key="$2"
  if [ $# -ne 2 ]; then
    cat <<EOF
Usage: $PROG <image.bin> <au_public_key.pem>
Installs the update verification public key <au_public_key.pem> to <image.bin>.
EOF
    exit 1
  fi
  local loopdev=$(loopback_partscan "${image}")
  local rootfs=$(make_temp_dir)
  local key_location="/usr/share/update_engine/"
  mount_loop_image_partition "${loopdev}" 3 "${rootfs}"
  sudo mkdir -p "$rootfs/$key_location"
  sudo cp "$pub_key" "$rootfs/$key_location/update-payload-key.pub.pem"
  sudo chown root:root "$rootfs/$key_location/update-payload-key.pub.pem"
  sudo chmod 644 "$rootfs/$key_location/update-payload-key.pub.pem"
  echo "AU verification key was installed. Do not forget to resign the image!"
}

main "$@"
