# Copyright 2019 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.

template("genopenssl_key") {
  forward_variables_from(invoker,
                         [
                           "openssl_pem_in_dir",
                           "openssl_pem_out_dir",
                         ])
  if (!defined(openssl_pem_in_dir)) {
    openssl_pem_in_dir = "."
  }
  openssl_pem_in_dir = rebase_path(openssl_pem_in_dir)
  pem_dir = "${root_gen_dir}/${openssl_pem_out_dir}"

  action_foreach(target_name) {
    sources = invoker.sources
    script = "//common-mk/file_generator_wrapper.py"
    outputs = [
      "${pem_dir}/{{source_name_part}}.pub.pem",
    ]
    args = [
      "openssl",
      "rsa",
      "-in",
      "${openssl_pem_in_dir}/{{source_file_part}}",
      "-pubout",
      "-out",
      "${pem_dir}/{{source_name_part}}.pub.pem",
    ]
  }
}
