| # Copyright 2017 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//packages/package.gni") |
| |
| declare_args() { |
| # Additional SSH authorized_keys file to include in the build. |
| # For example: |
| # extra_authorized_keys_file=\"$HOME/.ssh/id_rsa.pub\" |
| extra_authorized_keys_file = "" |
| } |
| |
| package("developer-keys") { |
| deps = [ |
| ":all", |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path("$root_out_dir/ssh-keys/authorized_keys") |
| dest = "ssh/authorized_keys" |
| }, |
| |
| { |
| path = rebase_path("$root_out_dir/ssh-keys/ssh_host_ed25519_key") |
| dest = "ssh/ssh_host_ed25519_key" |
| }, |
| |
| { |
| path = rebase_path("$root_out_dir/ssh-keys/ssh_host_ed25519_key.pub") |
| dest = "ssh/ssh_host_ed25519_key.pub" |
| }, |
| ] |
| } |
| |
| group("all") { |
| public_deps = [ |
| ":authorized_keys", |
| ":host_key", |
| ":id_key", |
| ":ssh_config", |
| ] |
| } |
| |
| keys_dir = "${root_build_dir}/ssh-keys" |
| |
| action("host_key") { |
| key_file = "${keys_dir}/ssh_host_ed25519_key" |
| script = "ssh-keygen-wrapper" |
| args = [ |
| "ed25519", |
| rebase_path(key_file), |
| ] |
| outputs = [ |
| key_file, |
| key_file + ".pub", |
| ] |
| } |
| |
| action("id_key") { |
| key_file = "${keys_dir}/id_ed25519" |
| script = "ssh-keygen-wrapper" |
| args = [ |
| "ed25519", |
| rebase_path(key_file), |
| ] |
| outputs = [ |
| key_file, |
| key_file + ".pub", |
| ] |
| } |
| |
| action("authorized_keys") { |
| inputs = [ |
| "${keys_dir}/id_ed25519.pub", |
| ] |
| if (extra_authorized_keys != "") { |
| inputs += [ extra_authorized_keys ] |
| } |
| outputs = [ |
| "${keys_dir}/authorized_keys", |
| ] |
| deps = [ |
| ":id_key", |
| ] |
| |
| script = "concat_authorized_keys.sh" |
| args = rebase_path(outputs + inputs) |
| } |
| |
| action("ssh_config") { |
| config_file = "${keys_dir}/ssh_config" |
| script = "generate_ssh_config.sh" |
| args = [ |
| rebase_path("${keys_dir}/id_ed25519"), |
| rebase_path(config_file), |
| ] |
| outputs = [ |
| config_file, |
| ] |
| } |