| # 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. |
| |
| group("openssh-portable") { |
| deps = [ |
| ":config-files", |
| ":scp", |
| ":sftp-server", |
| ":ssh", |
| ":ssh-keygen", |
| ":sshd", |
| ] |
| } |
| |
| config("fuchsia") { |
| include_dirs = [ |
| ".", |
| "fuchsia", |
| ] |
| defines = [ |
| "u_int64_t=uint64_t", |
| "SSHDIR=\"/system/data/ssh\"", |
| ] |
| cflags = [ |
| "-include", |
| rebase_path("fuchsia/fuchsia-compat.h"), |
| ] |
| |
| configs = [ |
| "//third_party/boringssl:boringssl_config", |
| "//third_party/zlib:zlib_config", |
| ] |
| } |
| |
| copy("config-files") { |
| sources = [ |
| "fuchsia/sshd_config", |
| ] |
| outputs = [ |
| "$root_out_dir/{{source_file_part}}", |
| ] |
| } |
| |
| source_set("fuchsia-compat") { |
| sources = [ |
| "fuchsia/fuchsia-compat.c", |
| "fuchsia/fuchsia-compat.h", |
| ] |
| configs += [ ":fuchsia" ] |
| } |
| |
| # 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", |
| "bitmap.h", |
| "krl.c", |
| "krl.h", |
| "ssh_api.c", |
| "ssh_api.h", |
| "sshbuf-getput-basic.c", |
| "sshbuf-getput-crypto.c", |
| "sshbuf-misc.c", |
| "sshbuf.c", |
| "sshbuf.h", |
| "ssherr.c", |
| "ssherr.h", |
| "sshkey.c", |
| "sshkey.h", |
| ] |
| configs += [ ":fuchsia" ] |
| |
| deps = [ |
| "//third_party/boringssl", |
| "//third_party/zlib", |
| ] |
| } |
| |
| config("umac128_config") { |
| defines = [ |
| "UMAC_OUTPUT_LEN=16", |
| "umac_new=umac128_new", |
| "umac_update=umac128_update", |
| "umac_final=umac128_final", |
| "umac_delete=umac128_delete", |
| "umac_ctx=umac128_ctx", |
| ] |
| } |
| |
| source_set("umac128") { |
| sources = [ |
| "umac.c", |
| ] |
| configs += [ |
| ":umac128_config", |
| ":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", |
| "atomicio.h", |
| "authfd.c", |
| "authfd.h", |
| "authfile.c", |
| "authfile.h", |
| "blocks.c", |
| "bufaux.c", |
| "bufbn.c", |
| "bufec.c", |
| "buffer.c", |
| "buffer.h", |
| "canohost.c", |
| "canohost.h", |
| "chacha.c", |
| "chacha.h", |
| "channels.c", |
| "channels.h", |
| "cipher-3des1.c", |
| "cipher-aes.c", |
| "cipher-aesctr.c", |
| "cipher-aesctr.h", |
| "cipher-bf1.c", |
| "cipher-chachapoly.c", |
| "cipher-chachapoly.h", |
| "cipher-ctr.c", |
| "cipher.c", |
| "cipher.h", |
| "cleanup.c", |
| "compat.c", |
| "compat.h", |
| "crc32.c", |
| "crc32.h", |
| "deattack.c", |
| "deattack.h", |
| "dh.c", |
| "dh.h", |
| "digest-libc.c", |
| "digest-openssl.c", |
| "dispatch.c", |
| "dispatch.h", |
| "dns.c", |
| "dns.h", |
| "ed25519.c", |
| "entropy.c", |
| "entropy.h", |
| "fatal.c", |
| "fe25519.c", |
| "fe25519.h", |
| "ge25519.c", |
| "ge25519.h", |
| "gss-genr.c", |
| "hash.c", |
| "hmac.c", |
| "hmac.h", |
| "hostfile.c", |
| "hostfile.h", |
| "kex.c", |
| "kex.h", |
| "kexc25519.c", |
| "kexc25519c.c", |
| "kexc25519s.c", |
| "kexdh.c", |
| "kexdhc.c", |
| "kexdhs.c", |
| "kexecdh.c", |
| "kexecdhc.c", |
| "kexecdhs.c", |
| "kexgex.c", |
| "kexgexc.c", |
| "kexgexs.c", |
| "key.c", |
| "key.h", |
| "log.c", |
| "log.h", |
| "mac.c", |
| "mac.h", |
| "match.c", |
| "match.h", |
| "md-sha256.c", |
| "misc.c", |
| "misc.h", |
| "moduli.c", |
| "monitor_fdpass.c", |
| "monitor_fdpass.h", |
| "msg.c", |
| "msg.h", |
| "nchan.c", |
| "opacket.c", |
| "opacket.h", |
| "packet.c", |
| "packet.h", |
| "platform-pledge.c", |
| "platform-tracing.c", |
| "poly1305.c", |
| "poly1305.h", |
| "progressmeter.c", |
| "progressmeter.h", |
| "readpass.c", |
| "rijndael.c", |
| "rijndael.h", |
| "rsa.c", |
| "rsa.h", |
| "sc25519.c", |
| "sc25519.h", |
| "smult_curve25519_ref.c", |
| "ssh-dss.c", |
| "ssh-ecdsa.c", |
| "ssh-ed25519.c", |
| "ssh-pkcs11.c", |
| "ssh-pkcs11.h", |
| "ssh-rsa.c", |
| "ttymodes.c", |
| "ttymodes.h", |
| "uidswap.c", |
| "uidswap.h", |
| "umac.c", |
| "umac.h", |
| "utf8.c", |
| "utf8.h", |
| "uuencode.c", |
| "uuencode.h", |
| "verify.c", |
| "xmalloc.c", |
| "xmalloc.h", |
| ] |
| |
| deps = [ |
| ":fuchsia-compat", |
| ":libopenssh", |
| ":openbsd-compat", |
| ":umac128", |
| "//third_party/boringssl", |
| ] |
| libs = [ "launchpad" ] |
| configs += [ ":fuchsia" ] |
| } |
| |
| config("openbsd-compat-config") { |
| include_dirs = [ "openbsd-compat" ] |
| } |
| |
| source_set("openbsd-compat") { |
| sources = [ |
| "openbsd-compat/arc4random.c", |
| "openbsd-compat/base64.c", |
| "openbsd-compat/base64.h", |
| "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-cray.c", |
| "openbsd-compat/bsd-cray.h", |
| "openbsd-compat/bsd-cygwin_util.c", |
| "openbsd-compat/bsd-cygwin_util.h", |
| "openbsd-compat/bsd-err.c", |
| "openbsd-compat/bsd-getpeereid.c", |
| "openbsd-compat/bsd-misc.c", |
| "openbsd-compat/bsd-misc.h", |
| "openbsd-compat/bsd-nextstep.c", |
| "openbsd-compat/bsd-nextstep.h", |
| "openbsd-compat/bsd-openpty.c", |
| "openbsd-compat/bsd-poll.c", |
| "openbsd-compat/bsd-poll.h", |
| "openbsd-compat/bsd-setres_id.c", |
| "openbsd-compat/bsd-setres_id.h", |
| "openbsd-compat/bsd-snprintf.c", |
| "openbsd-compat/bsd-statvfs.c", |
| "openbsd-compat/bsd-statvfs.h", |
| "openbsd-compat/bsd-waitpid.c", |
| "openbsd-compat/bsd-waitpid.h", |
| "openbsd-compat/daemon.c", |
| "openbsd-compat/dirname.c", |
| "openbsd-compat/explicit_bzero.c", |
| "openbsd-compat/fake-rfc2553.c", |
| "openbsd-compat/fake-rfc2553.h", |
| "openbsd-compat/fmt_scaled.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/getrrsetbyname.h", |
| "openbsd-compat/glob.c", |
| "openbsd-compat/glob.h", |
| "openbsd-compat/inet_aton.c", |
| "openbsd-compat/inet_ntoa.c", |
| "openbsd-compat/inet_ntop.c", |
| "openbsd-compat/kludge-fd_set.c", |
| "openbsd-compat/md5.c", |
| "openbsd-compat/md5.h", |
| "openbsd-compat/mktemp.c", |
| "openbsd-compat/openssl-compat.c", |
| "openbsd-compat/openssl-compat.h", |
| "openbsd-compat/pwcache.c", |
| "openbsd-compat/readpassphrase.c", |
| "openbsd-compat/readpassphrase.h", |
| "openbsd-compat/reallocarray.c", |
| "openbsd-compat/realpath.c", |
| "openbsd-compat/rmd160.c", |
| "openbsd-compat/rmd160.h", |
| "openbsd-compat/rresvport.c", |
| "openbsd-compat/setenv.c", |
| "openbsd-compat/setproctitle.c", |
| "openbsd-compat/sha1.c", |
| "openbsd-compat/sha1.h", |
| "openbsd-compat/sha2.c", |
| "openbsd-compat/sha2.h", |
| "openbsd-compat/sigact.c", |
| "openbsd-compat/sigact.h", |
| "openbsd-compat/strcasestr.c", |
| "openbsd-compat/strlcat.c", |
| "openbsd-compat/strlcpy.c", |
| "openbsd-compat/strmode.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", |
| "openbsd-compat/vis.h", |
| ] |
| configs += [ |
| ":fuchsia", |
| ":openbsd-compat-config", |
| ] |
| } |
| |
| executable("ssh") { |
| sources = [ |
| "clientloop.c", |
| "mux.c", |
| "readconf.c", |
| "ssh.c", |
| "sshconnect.c", |
| "sshconnect1.c", |
| "sshconnect2.c", |
| "sshtty.c", |
| ] |
| deps = [ |
| ":libssh", |
| ] |
| configs += [ ":fuchsia" ] |
| } |
| |
| executable("sshd") { |
| sources = [ |
| "audit-bsm.c", |
| "audit-linux.c", |
| "audit.c", |
| "audit.h", |
| "auth-bsdauth.c", |
| "auth-krb5.c", |
| "auth-options.c", |
| "auth-options.h", |
| "auth-pam.c", |
| "auth-pam.h", |
| "auth-passwd.c", |
| "auth-rhosts.c", |
| "auth-shadow.c", |
| "auth-sia.c", |
| "auth-sia.h", |
| "auth-skey.c", |
| "auth.c", |
| "auth.h", |
| "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", |
| "groupaccess.h", |
| "gss-serv-krb5.c", |
| "gss-serv.c", |
| "loginrec.c", |
| "loginrec.h", |
| "md5crypt.c", |
| "md5crypt.h", |
| "monitor.c", |
| "monitor.h", |
| "monitor_wrap.c", |
| "monitor_wrap.h", |
| "platform.c", |
| "platform.h", |
| "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", |
| "servconf.h", |
| "serverloop.c", |
| "serverloop.h", |
| "session.c", |
| "session.h", |
| "sftp-common.c", |
| "sftp-common.h", |
| "sftp-server.c", |
| "sshd.c", |
| "sshlogin.c", |
| "sshlogin.h", |
| "sshpty.c", |
| "sshpty.h", |
| ] |
| configs += [ ":fuchsia" ] |
| deps = [ |
| ":libssh", |
| ] |
| } |
| |
| executable("ssh-keygen") { |
| configs += [ ":fuchsia" ] |
| sources = [ |
| "ssh-keygen.c", |
| ] |
| deps = [ |
| ":libssh", |
| ] |
| } |
| |
| executable("sftp-server") { |
| sources = [ |
| "sftp-common.c", |
| "sftp-server-main.c", |
| "sftp-server.c", |
| ] |
| configs += [ ":fuchsia" ] |
| deps = [ |
| ":libssh", |
| ] |
| } |
| |
| executable("scp") { |
| sources = [ |
| "bufaux.c", |
| "progressmeter.c", |
| "scp.c", |
| ] |
| configs += [ ":fuchsia" ] |
| deps = [ |
| ":libssh", |
| ] |
| } |