| # 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("//build/package.gni") |
| |
| package("openssh-tools") { |
| deps = [ |
| ":scp", |
| ":ssh", |
| ":ssh-keygen", |
| ] |
| |
| binaries = [ |
| { |
| name = "scp" |
| shell = true |
| }, |
| { |
| name = "ssh" |
| shell = true |
| }, |
| { |
| name = "ssh-keygen" |
| shell = true |
| }, |
| ] |
| } |
| |
| config("fuchsia") { |
| include_dirs = [ |
| ".", |
| "fuchsia", |
| ] |
| cflags = [ |
| "-include", |
| rebase_path("fuchsia/fuchsia-compat.h"), |
| |
| "-Wno-sign-compare", |
| "-Wno-pointer-sign", |
| ] |
| |
| configs = [ |
| "//third_party/boringssl:boringssl_config", |
| "//third_party/zlib:zlib_config", |
| "//zircon/public/lib/fdio:fdio.config", |
| ] |
| } |
| |
| source_set("fuchsia-compat") { |
| sources = [ "fuchsia/fuchsia-compat.c" ] |
| configs += [ |
| ":fuchsia", |
| "//zircon/public/lib/zircon-internal:zircon-internal.config", |
| ] |
| deps = [ |
| "//sdk/fidl/fuchsia.hardware.pty:fuchsia.hardware.pty_c", |
| "//zircon/system/ulib/async-loop", |
| "//zircon/system/ulib/loader-service", |
| ] |
| } |
| |
| # This needs to be a static library because some of its symbols are replaced |
| # when it is linked into executables. |
| static_library("libopenssh") { |
| sources = [ |
| "bitmap.c", |
| "krl.c", |
| "ssh_api.c", |
| "sshbuf-getput-basic.c", |
| "sshbuf-getput-crypto.c", |
| "sshbuf-misc.c", |
| "sshbuf.c", |
| "ssherr.c", |
| "sshkey.c", |
| ] |
| configs += [ ":fuchsia" ] |
| } |
| |
| # This needs to be a static library because some of its symbols are replaced |
| # when it is linked into executables. |
| static_library("libssh") { |
| sources = [ |
| "addrmatch.c", |
| "atomicio.c", |
| "authfd.c", |
| "authfile.c", |
| "canohost.c", |
| "chacha.c", |
| "channels.c", |
| "cipher-aes.c", |
| "cipher-aesctr.c", |
| "cipher-chachapoly.c", |
| "cipher-ctr.c", |
| "cipher.c", |
| "cleanup.c", |
| "compat.c", |
| "dh.c", |
| "digest-libc.c", |
| "digest-openssl.c", |
| "dispatch.c", |
| "dns.c", |
| "ed25519.c", |
| "entropy.c", |
| "fatal.c", |
| "fe25519.c", |
| "ge25519.c", |
| "gss-genr.c", |
| "hash.c", |
| "hmac.c", |
| "hostfile.c", |
| "kex.c", |
| "kexc25519.c", |
| "kexdh.c", |
| "kexecdh.c", |
| "kexgen.c", |
| "kexgex.c", |
| "kexgexc.c", |
| "kexgexs.c", |
| "kexsntrup4591761x25519.c", |
| "log.c", |
| "mac.c", |
| "match.c", |
| "misc.c", |
| "moduli.c", |
| "monitor_fdpass.c", |
| "msg.c", |
| "nchan.c", |
| "packet.c", |
| "platform-misc.c", |
| "platform-pledge.c", |
| "platform-tracing.c", |
| "poly1305.c", |
| "progressmeter.c", |
| "readpass.c", |
| "rijndael.c", |
| "sc25519.c", |
| "sftp-realpath.c", |
| "smult_curve25519_ref.c", |
| "sntrup4591761.c", |
| "ssh-dss.c", |
| "ssh-ecdsa-sk.c", |
| "ssh-ecdsa.c", |
| "ssh-ed25519-sk.c", |
| "ssh-ed25519.c", |
| "ssh-pkcs11.c", |
| "ssh-rsa.c", |
| "sshbuf-io.c", |
| "ttymodes.c", |
| "umac.c", |
| "umac128.c", |
| "utf8.c", |
| "verify.c", |
| "xmalloc.c", |
| ] |
| configs += [ ":fuchsia" ] |
| deps = [ |
| ":fuchsia-compat", |
| ":libopenssh", |
| ":openbsd-compat", |
| "//third_party/boringssl", |
| "//third_party/zlib:zlib_static", |
| ] |
| } |
| |
| config("openbsd-compat-config") { |
| include_dirs = [ "openbsd-compat" ] |
| cflags = [ "-Wno-sizeof-array-div" ] |
| } |
| |
| source_set("openbsd-compat") { |
| sources = [ |
| "openbsd-compat/arc4random.c", |
| "openbsd-compat/base64.c", |
| "openbsd-compat/basename.c", |
| "openbsd-compat/bcrypt_pbkdf.c", |
| "openbsd-compat/bindresvport.c", |
| "openbsd-compat/blowfish.c", |
| "openbsd-compat/bsd-asprintf.c", |
| "openbsd-compat/bsd-closefrom.c", |
| "openbsd-compat/bsd-cygwin_util.c", |
| "openbsd-compat/bsd-err.c", |
| "openbsd-compat/bsd-flock.c", |
| "openbsd-compat/bsd-getline.c", |
| "openbsd-compat/bsd-getpagesize.c", |
| "openbsd-compat/bsd-getpeereid.c", |
| "openbsd-compat/bsd-malloc.c", |
| "openbsd-compat/bsd-misc.c", |
| "openbsd-compat/bsd-nextstep.c", |
| "openbsd-compat/bsd-openpty.c", |
| "openbsd-compat/bsd-poll.c", |
| "openbsd-compat/bsd-setres_id.c", |
| "openbsd-compat/bsd-snprintf.c", |
| "openbsd-compat/bsd-statvfs.c", |
| "openbsd-compat/bsd-waitpid.c", |
| "openbsd-compat/daemon.c", |
| "openbsd-compat/dirname.c", |
| "openbsd-compat/explicit_bzero.c", |
| "openbsd-compat/fake-rfc2553.c", |
| "openbsd-compat/fmt_scaled.c", |
| "openbsd-compat/fnmatch.c", |
| "openbsd-compat/freezero.c", |
| "openbsd-compat/getcwd.c", |
| "openbsd-compat/getgrouplist.c", |
| "openbsd-compat/getopt_long.c", |
| "openbsd-compat/getrrsetbyname-ldns.c", |
| "openbsd-compat/getrrsetbyname.c", |
| "openbsd-compat/glob.c", |
| "openbsd-compat/inet_aton.c", |
| "openbsd-compat/inet_ntoa.c", |
| "openbsd-compat/inet_ntop.c", |
| "openbsd-compat/kludge-fd_set.c", |
| "openbsd-compat/libressl-api-compat.c", |
| "openbsd-compat/md5.c", |
| "openbsd-compat/memmem.c", |
| "openbsd-compat/mktemp.c", |
| "openbsd-compat/openssl-compat.c", |
| "openbsd-compat/port-aix.c", |
| "openbsd-compat/port-irix.c", |
| "openbsd-compat/port-linux.c", |
| "openbsd-compat/port-net.c", |
| "openbsd-compat/port-solaris.c", |
| "openbsd-compat/port-uw.c", |
| "openbsd-compat/pwcache.c", |
| "openbsd-compat/readpassphrase.c", |
| "openbsd-compat/reallocarray.c", |
| "openbsd-compat/recallocarray.c", |
| "openbsd-compat/rresvport.c", |
| "openbsd-compat/setenv.c", |
| "openbsd-compat/setproctitle.c", |
| "openbsd-compat/sha1.c", |
| "openbsd-compat/sha2.c", |
| "openbsd-compat/sigact.c", |
| "openbsd-compat/strcasestr.c", |
| "openbsd-compat/strlcat.c", |
| "openbsd-compat/strlcpy.c", |
| "openbsd-compat/strmode.c", |
| "openbsd-compat/strndup.c", |
| "openbsd-compat/strnlen.c", |
| "openbsd-compat/strptime.c", |
| "openbsd-compat/strsep.c", |
| "openbsd-compat/strtoll.c", |
| "openbsd-compat/strtonum.c", |
| "openbsd-compat/strtoul.c", |
| "openbsd-compat/strtoull.c", |
| "openbsd-compat/timingsafe_bcmp.c", |
| "openbsd-compat/vis.c", |
| ] |
| configs += [ |
| ":fuchsia", |
| ":openbsd-compat-config", |
| ] |
| } |
| |
| source_set("sk") { |
| sources = [ "ssh-sk-client.c" ] |
| configs += [ ":fuchsia" ] |
| } |
| |
| executable("ssh") { |
| sources = [ |
| "clientloop.c", |
| "mux.c", |
| "readconf.c", |
| "ssh.c", |
| "sshconnect.c", |
| "sshconnect2.c", |
| "sshtty.c", |
| ] |
| configs += [ ":fuchsia" ] |
| deps = [ |
| ":libssh", |
| ":sk", |
| ] |
| } |
| |
| executable("sshd") { |
| sources = [ |
| "audit-bsm.c", |
| "audit-linux.c", |
| "audit.c", |
| "auth-bsdauth.c", |
| "auth-krb5.c", |
| "auth-options.c", |
| "auth-pam.c", |
| "auth-passwd.c", |
| "auth-rhosts.c", |
| "auth-shadow.c", |
| "auth-sia.c", |
| "auth.c", |
| "auth2-chall.c", |
| "auth2-gss.c", |
| "auth2-hostbased.c", |
| "auth2-kbdint.c", |
| "auth2-none.c", |
| "auth2-passwd.c", |
| "auth2-pubkey.c", |
| "auth2.c", |
| "groupaccess.c", |
| "gss-serv-krb5.c", |
| "gss-serv.c", |
| "loginrec.c", |
| "md5crypt.c", |
| "monitor.c", |
| "monitor_wrap.c", |
| "platform.c", |
| "sandbox-capsicum.c", |
| "sandbox-darwin.c", |
| "sandbox-null.c", |
| "sandbox-pledge.c", |
| "sandbox-rlimit.c", |
| "sandbox-seccomp-filter.c", |
| "sandbox-solaris.c", |
| "sandbox-systrace.c", |
| "servconf.c", |
| "serverloop.c", |
| "session.c", |
| "sftp-common.c", |
| "sftp-server.c", |
| "sshd.c", |
| "sshlogin.c", |
| "sshpty.c", |
| "uidswap.c", |
| ] |
| configs += [ ":fuchsia" ] |
| deps = [ |
| ":libssh", |
| ":sk", |
| "//sdk/fidl/fuchsia.hardware.pty:fuchsia.hardware.pty_c", |
| ] |
| } |
| |
| executable("ssh-keygen") { |
| sources = [ |
| "ssh-keygen.c", |
| "sshsig.c", |
| ] |
| configs += [ ":fuchsia" ] |
| deps = [ |
| ":libssh", |
| ":sk", |
| ] |
| } |
| |
| executable("hostkeygen") { |
| configs += [ ":fuchsia" ] |
| sources = [ "fuchsia/hostkeygen/hostkeygen.c" ] |
| deps = [ |
| ":libssh", |
| ":sk", |
| ] |
| } |
| |
| executable("sftp-server") { |
| sources = [ |
| "sftp-common.c", |
| "sftp-server-main.c", |
| "sftp-server.c", |
| ] |
| configs += [ ":fuchsia" ] |
| deps = [ ":libssh" ] |
| } |
| |
| executable("scp") { |
| sources = [ |
| "progressmeter.c", |
| "scp.c", |
| ] |
| configs += [ ":fuchsia" ] |
| deps = [ ":libssh" ] |
| } |