├── .azdo ├── ci.yml └── codeql.yml ├── .depend ├── .git_allowed_signers ├── .git_allowed_signers.asc ├── .github ├── ci-status.md ├── configs ├── configure.sh ├── run_test.sh ├── setup_ci.sh └── workflows │ ├── c-cpp.yml │ ├── cifuzz.yml │ ├── selfhosted.yml │ └── upstream.yml ├── .gitignore ├── .skipped-commit-ids ├── CREDITS ├── ChangeLog ├── INSTALL ├── LICENCE ├── Makefile.in ├── NOTICE ├── OVERVIEW ├── PROTOCOL ├── PROTOCOL.agent ├── PROTOCOL.certkeys ├── PROTOCOL.chacha20poly1305 ├── PROTOCOL.key ├── PROTOCOL.krl ├── PROTOCOL.mux ├── PROTOCOL.sshsig ├── PROTOCOL.u2f ├── README ├── README.dns ├── README.md ├── README.platform ├── README.privsep ├── README.tun ├── SECURITY.md ├── TODO ├── aclocal.m4 ├── addr.c ├── addr.h ├── addrmatch.c ├── atomicio.c ├── atomicio.h ├── 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.c ├── auth.h ├── auth2-chall.c ├── auth2-gss.c ├── auth2-hostbased.c ├── auth2-kbdint.c ├── auth2-methods.c ├── auth2-none.c ├── auth2-passwd.c ├── auth2-pubkey.c ├── auth2-pubkeyfile.c ├── auth2.c ├── authfd.c ├── authfd.h ├── authfile.c ├── authfile.h ├── bitmap.c ├── bitmap.h ├── buildpkg.sh.in ├── canohost.c ├── canohost.h ├── chacha.c ├── chacha.h ├── channels.c ├── channels.h ├── cipher-aes.c ├── cipher-aesctr.c ├── cipher-aesctr.h ├── cipher-chachapoly-libcrypto.c ├── cipher-chachapoly.c ├── cipher-chachapoly.h ├── cipher.c ├── cipher.h ├── cleanup.c ├── clientloop.c ├── clientloop.h ├── compat.c ├── compat.h ├── config.guess ├── config.h.in ├── config.sub ├── configure ├── configure.ac ├── contrib ├── Makefile ├── README ├── aix │ ├── README │ ├── buildbff.sh │ ├── inventory.sh │ └── pam.conf ├── cygwin │ ├── Makefile │ ├── README │ ├── ssh-host-config │ ├── ssh-user-config │ └── sshd-inetd ├── findssl.sh ├── gnome-ssh-askpass1.c ├── gnome-ssh-askpass2.c ├── gnome-ssh-askpass3.c ├── hpux │ ├── README │ ├── egd │ ├── egd.rc │ ├── sshd │ └── sshd.rc ├── redhat │ ├── gnome-ssh-askpass.csh │ ├── gnome-ssh-askpass.sh │ ├── openssh.spec │ ├── sshd.init │ └── sshd.pam ├── solaris │ └── README ├── ssh-copy-id ├── ssh-copy-id.1 ├── sshd.pam.freebsd ├── sshd.pam.generic ├── suse │ ├── openssh.spec │ ├── rc.config.sshd │ ├── rc.sshd │ └── sysconfig.ssh └── win32 │ ├── install │ ├── client.wxs │ ├── openssh.wixproj │ ├── product.wxs │ ├── server.wxs │ └── shared.wxs │ ├── openssh │ ├── AnalyzeCodeDiff.ps1 │ ├── AzDOBuildTools │ │ ├── AzDOBuildTools.psd1 │ │ └── AzDOBuildTools.psm1 │ ├── BinSkimConfig.xml │ ├── CredScanSuppress.json │ ├── FixHostFilePermissions.ps1 │ ├── FixUserFilePermissions.ps1 │ ├── GetFIDO2.ps1 │ ├── GetLibreSSL.ps1 │ ├── GetZLib.ps1 │ ├── MSG00001.bin │ ├── MicrosoftTelemetry.h │ ├── NOTICE_for_release.txt │ ├── OpenSSH-build.ps1 │ ├── OpenSSHBuildHelper.psm1 │ ├── OpenSSHCommonUtils.psm1 │ ├── OpenSSHTestHelper.psm1 │ ├── OpenSSHUtils.psd1 │ ├── OpenSSHUtils.psm1 │ ├── OpenSSL-1.0.2d_build.cmd │ ├── Openssh-events.man │ ├── README.txt │ ├── SignConfig.xml │ ├── Win32-OpenSSH.sln │ ├── Win32-OpenSSh-design.pptx │ ├── bash_tests_iterator.ps1 │ ├── build.json │ ├── config.h.vs │ ├── config.ps1 │ ├── config.vcxproj │ ├── config.vcxproj.filters │ ├── etwgen.cmd │ ├── install-sshd.ps1 │ ├── keygen.vcxproj │ ├── keygen.vcxproj.filters │ ├── libssh.vcxproj │ ├── libssh.vcxproj.filters │ ├── openbsd_compat.vcxproj │ ├── openbsd_compat.vcxproj.filters │ ├── openssh-events.rc │ ├── openssh-eventsTEMP.BIN │ ├── openssh_build.cmd │ ├── paths.targets │ ├── resource.h │ ├── scp.vcxproj │ ├── scp.vcxproj.filters │ ├── sftp-server.vcxproj │ ├── sftp-server.vcxproj.filters │ ├── sftp.vcxproj │ ├── sftp.vcxproj.filters │ ├── ssh-add.vcxproj │ ├── ssh-add.vcxproj.filters │ ├── ssh-agent.vcxproj │ ├── ssh-keyscan.vcxproj │ ├── ssh-keyscan.vcxproj.filters │ ├── ssh-pkcs11-helper.vcxproj │ ├── ssh-shellhost.vcxproj │ ├── ssh-sk-helper.vcxproj │ ├── ssh.vcxproj │ ├── ssh.vcxproj.filters │ ├── sshTelemetry.c │ ├── sshTelemetry.h │ ├── sshTelemetryInternal.h │ ├── sshd-session.vcxproj │ ├── sshd-session.vcxproj.filters │ ├── sshd.vcxproj │ ├── sshd.vcxproj.filters │ ├── sshd_config │ ├── targetos.manifest │ ├── uninstall-sshd.ps1 │ ├── unittest-bitmap.vcxproj │ ├── unittest-hostkeys.vcxproj │ ├── unittest-kex.vcxproj │ ├── unittest-match.vcxproj │ ├── unittest-misc.vcxproj │ ├── unittest-sshbuf.vcxproj │ ├── unittest-sshkey.vcxproj │ ├── unittest-utf8.vcxproj │ ├── unittest-win32compat.vcxproj │ ├── updateSigning.ps1 │ ├── version.rc │ ├── vstsbuild.ps1 │ ├── win32iocompat.vcxproj │ └── win32iocompat.vcxproj.filters │ └── win32compat │ ├── Debug.h │ ├── ansiprsr.c │ ├── ansiprsr.h │ ├── console.c │ ├── console.h │ ├── fileio.c │ ├── gss-sspi.c │ ├── inc │ ├── arpa │ │ ├── inet.h │ │ └── nameser.h │ ├── crypto-wrap.h │ ├── ctype.h │ ├── dirent.h │ ├── dlfcn.h │ ├── fcntl.h │ ├── fnmatch.h │ ├── grp.h │ ├── gssapi.h │ ├── libgen.h │ ├── net │ │ └── if.h │ ├── netdb.h │ ├── netinet │ │ ├── in.h │ │ ├── in_systm.h │ │ ├── ip.h │ │ └── tcp.h │ ├── poll.h │ ├── pwd.h │ ├── resolv.h │ ├── signal.h │ ├── spawn.h │ ├── stdio.h │ ├── stdlib.h │ ├── string.h │ ├── strings.h │ ├── sys │ │ ├── ioctl.h │ │ ├── param.h │ │ ├── resource.h │ │ ├── select.h │ │ ├── socket.h │ │ ├── stat.h │ │ ├── statvfs.h │ │ ├── time.h │ │ ├── types.h │ │ ├── uio.h │ │ ├── un.h │ │ └── wait.h │ ├── syslog.h │ ├── termios.h │ ├── time.h │ ├── unistd.h │ └── utf.h │ ├── libwin32compat.q │ ├── lsa_missingdefs.h │ ├── misc.c │ ├── misc_internal.h │ ├── no-ops.c │ ├── openssh-events.h │ ├── pwd.c │ ├── shell-host.c │ ├── signal.c │ ├── signal_internal.h │ ├── signal_sigalrm.c │ ├── signal_sigchld.c │ ├── signal_wait.c │ ├── socketio.c │ ├── spawn-ext.c │ ├── spawn.c │ ├── ssh-agent │ ├── agent-main.c │ ├── agent-request.h │ ├── agent.c │ ├── agent.h │ ├── connection.c │ └── keyagent-request.c │ ├── ssh_config │ ├── ssh_config │ └── sshd_config │ ├── termio.c │ ├── tncon.c │ ├── tncon.h │ ├── tnnet.c │ ├── tnnet.h │ ├── ttymodes_windows.c │ ├── utf.c │ ├── w32-doexec.c │ ├── w32-sshfileperm.c │ ├── w32api_proxies.c │ ├── w32api_proxies.h │ ├── w32fd.c │ ├── w32fd.h │ ├── w32log.c │ ├── win32-utf8.c │ ├── win32_dirent.c │ ├── win32_groupaccess.c │ ├── win32_pty.c │ ├── win32_sshpty.c │ ├── win32_sshtty.c │ ├── win32_usertoken_utils.c │ ├── win32compat.vcproj │ ├── wmain_common.c │ ├── wmain_sshd-session.c │ └── wmain_sshd.c ├── crypto_api.h ├── defines.h ├── dh.c ├── dh.h ├── digest-libc.c ├── digest-openssl.c ├── digest.h ├── dispatch.c ├── dispatch.h ├── dns.c ├── dns.h ├── ed25519.c ├── ed25519.sh ├── entropy.c ├── entropy.h ├── fatal.c ├── fixalgorithms ├── fixpaths ├── groupaccess.c ├── groupaccess.h ├── gss-genr.c ├── gss-serv-krb5.c ├── gss-serv.c ├── hash.c ├── hmac.c ├── hmac.h ├── hostfile.c ├── hostfile.h ├── includes.h ├── install-sh ├── kex-names.c ├── kex.c ├── kex.h ├── kexc25519.c ├── kexdh.c ├── kexecdh.c ├── kexgen.c ├── kexgex.c ├── kexgexc.c ├── kexgexs.c ├── kexsntrup761x25519.c ├── krl.c ├── krl.h ├── log.c ├── log.h ├── loginrec.c ├── loginrec.h ├── logintest.c ├── m4 └── openssh.m4 ├── mac.c ├── mac.h ├── match.c ├── match.h ├── mdoc2man.awk ├── misc.c ├── misc.h ├── mkinstalldirs ├── moduli ├── moduli.0 ├── moduli.5 ├── moduli.c ├── monitor.c ├── monitor.h ├── monitor_fdpass.c ├── monitor_fdpass.h ├── monitor_wrap.c ├── monitor_wrap.h ├── msg.c ├── msg.h ├── mux.c ├── myproposal.h ├── nchan.c ├── nchan.ms ├── nchan2.ms ├── openbsd-compat ├── Makefile.in ├── arc4random.c ├── arc4random.h ├── arc4random_uniform.c ├── arc4random_win.h ├── base64.c ├── base64.h ├── basename.c ├── bcrypt_pbkdf.c ├── bindresvport.c ├── blf.h ├── blowfish.c ├── bsd-asprintf.c ├── bsd-closefrom.c ├── bsd-cygwin_util.c ├── bsd-cygwin_util.h ├── bsd-err.c ├── bsd-flock.c ├── bsd-getentropy.c ├── bsd-getline.c ├── bsd-getpagesize.c ├── bsd-getpeereid.c ├── bsd-malloc.c ├── bsd-misc.c ├── bsd-misc.h ├── bsd-nextstep.c ├── bsd-nextstep.h ├── bsd-openpty.c ├── bsd-poll.c ├── bsd-poll.h ├── bsd-pselect.c ├── bsd-setres_id.c ├── bsd-setres_id.h ├── bsd-signal.c ├── bsd-signal.h ├── bsd-snprintf.c ├── bsd-statvfs.c ├── bsd-statvfs.h ├── bsd-timegm.c ├── bsd-waitpid.c ├── bsd-waitpid.h ├── chacha_private.h ├── charclass.h ├── daemon.c ├── dirname.c ├── explicit_bzero.c ├── fake-rfc2553.c ├── fake-rfc2553.h ├── fmt_scaled.c ├── fnmatch.c ├── fnmatch.h ├── freezero.c ├── getcwd.c ├── getgrouplist.c ├── getopt.h ├── getopt_long.c ├── getrrsetbyname-ldns.c ├── getrrsetbyname.c ├── getrrsetbyname.h ├── glob.c ├── glob.h ├── inet_aton.c ├── inet_ntoa.c ├── inet_ntop.c ├── kludge-fd_set.c ├── libressl-api-compat.c ├── md5.c ├── md5.h ├── memmem.c ├── mktemp.c ├── openbsd-compat.h ├── openssl-compat.c ├── openssl-compat.h ├── port-aix.c ├── port-aix.h ├── port-irix.c ├── port-irix.h ├── port-linux.c ├── port-linux.h ├── port-net.c ├── port-net.h ├── port-prngd.c ├── port-solaris.c ├── port-solaris.h ├── port-uw.c ├── port-uw.h ├── pwcache.c ├── readpassphrase.c ├── readpassphrase.h ├── reallocarray.c ├── recallocarray.c ├── regress │ ├── Makefile.in │ ├── closefromtest.c │ ├── opensslvertest.c │ ├── snprintftest.c │ ├── strduptest.c │ ├── strtonumtest.c │ └── utimensattest.c ├── rresvport.c ├── setenv.c ├── setproctitle.c ├── sha1.c ├── sha1.h ├── sha2.c ├── sha2.h ├── sigact.c ├── sigact.h ├── strcasestr.c ├── strlcat.c ├── strlcpy.c ├── strmode.c ├── strndup.c ├── strnlen.c ├── strptime.c ├── strsep.c ├── strtoll.c ├── strtonum.c ├── strtoul.c ├── strtoull.c ├── sys-queue.h ├── sys-tree.h ├── timingsafe_bcmp.c ├── vis.c ├── vis.h └── xcrypt.c ├── openssh.xml.in ├── opensshd.init.in ├── packet.c ├── packet.h ├── pal_doexec.h ├── pathnames.h ├── pkcs11.h ├── platform-listen.c ├── platform-misc.c ├── platform-pledge.c ├── platform-tracing.c ├── platform.c ├── platform.h ├── poly1305.c ├── poly1305.h ├── progressmeter.c ├── progressmeter.h ├── readconf.c ├── readconf.h ├── readpass.c ├── regress ├── .gitattributes ├── Makefile ├── README.regress ├── addrmatch.sh ├── agent-getpeereid.sh ├── agent-pkcs11-cert.sh ├── agent-pkcs11-restrict.sh ├── agent-pkcs11.sh ├── agent-ptrace.sh ├── agent-restrict.sh ├── agent-subprocess.sh ├── agent-timeout.sh ├── agent.sh ├── allow-deny-users.sh ├── authinfo.sh ├── banner.sh ├── broken-pipe.sh ├── brokenkeys.sh ├── cert-file.sh ├── cert-hostkey.sh ├── cert-userkey.sh ├── cfginclude.sh ├── cfgmatch.sh ├── cfgmatchlisten.sh ├── cfgparse.sh ├── channel-timeout.sh ├── check-perm.c ├── cipher-speed.sh ├── conch-ciphers.sh ├── connect-privsep.sh ├── connect-uri.sh ├── connect.sh ├── connection-timeout.sh ├── dhgex.sh ├── dropbear-ciphers.sh ├── dropbear-kex.sh ├── dsa_ssh2.prv ├── dsa_ssh2.pub ├── dynamic-forward.sh ├── ed25519_openssh.prv ├── ed25519_openssh.pub ├── envpass.sh ├── exit-status-signal.sh ├── exit-status.sh ├── forcecommand.sh ├── forward-control.sh ├── forwarding.sh ├── host-expand.sh ├── hostbased.sh ├── hostkey-agent.sh ├── hostkey-rotate.sh ├── integrity.sh ├── kextype.sh ├── key-options.sh ├── keygen-change.sh ├── keygen-comment.sh ├── keygen-convert.sh ├── keygen-knownhosts.sh ├── keygen-moduli.sh ├── keygen-sshfp.sh ├── keys-command.sh ├── keyscan.sh ├── keytype.sh ├── knownhosts-command.sh ├── knownhosts.sh ├── krl.sh ├── limit-keytype.sh ├── localcommand.sh ├── login-timeout.sh ├── match-subsystem.sh ├── misc │ ├── Makefile │ ├── fuzz-harness │ │ ├── Makefile │ │ ├── README │ │ ├── agent_fuzz.cc │ │ ├── agent_fuzz_helper.c │ │ ├── authkeys_fuzz.cc │ │ ├── authopt_fuzz.cc │ │ ├── fixed-keys.h │ │ ├── kex_fuzz.cc │ │ ├── privkey_fuzz.cc │ │ ├── pubkey_fuzz.cc │ │ ├── sig_fuzz.cc │ │ ├── ssh-sk-null.cc │ │ ├── sshsig_fuzz.cc │ │ ├── sshsigopt_fuzz.cc │ │ └── testdata │ │ │ ├── README │ │ │ └── create-agent-corpus.sh │ └── sk-dummy │ │ ├── Makefile │ │ ├── fatal.c │ │ └── sk-dummy.c ├── mkdtemp.c ├── modpipe.c ├── moduli.in ├── multiplex.sh ├── multipubkey.sh ├── netcat.c ├── penalty-expire.sh ├── penalty.sh ├── percent.sh ├── pesterTests │ ├── AuthorizedKeysCommand.Tests.ps1 │ ├── Authorized_keys_fileperm.Tests.ps1 │ ├── CertAuth.Tests.ps1 │ ├── Cfginclude.Tests.ps1 │ ├── CommonUtils.psm1 │ ├── FileBasedLogging.tests.ps1 │ ├── Hostkey_fileperm.Tests.ps1 │ ├── KeyUtils.Tests.ps1 │ ├── Log_fileperm.Tests.ps1 │ ├── PlatformAbstractLayer.psm1 │ ├── PortForwarding.Tests.ps1 │ ├── PowerShell.SSH.Tests.ps1 │ ├── README.md │ ├── SCP.Tests.ps1 │ ├── SFTP.Tests.ps1 │ ├── SSH.Tests.ps1 │ ├── SSHDConfig.tests.ps1 │ ├── Setup.Tests.ps1 │ ├── ShellHost.Tests.ps1 │ ├── Uninstall.Tests.ps1 │ ├── Userkey_fileperm.Tests.ps1 │ ├── data │ │ ├── SSHD_Config │ │ ├── known_hosts │ │ ├── ssh_config │ │ ├── sshtest_ca_userkeys │ │ ├── sshtest_ca_userkeys.pub │ │ ├── sshtest_hostkey_dsa │ │ ├── sshtest_hostkey_dsa.pub │ │ ├── sshtest_hostkey_ecdsa │ │ ├── sshtest_hostkey_ecdsa.pub │ │ ├── sshtest_hostkey_ed25519 │ │ ├── sshtest_hostkey_ed25519.pub │ │ ├── sshtest_hostkey_rsa │ │ ├── sshtest_hostkey_rsa.pub │ │ ├── sshtest_userssokey_ed25519 │ │ └── sshtest_userssokey_ed25519.pub │ └── utilities │ │ └── askpass_util │ │ ├── README.txt │ │ ├── askpass_util.cpp │ │ └── askpass_util.exe ├── portnum.sh ├── principals-command.sh ├── proto-mismatch.sh ├── proto-version.sh ├── proxy-connect.sh ├── putty-ciphers.sh ├── putty-kex.sh ├── putty-transfer.sh ├── reconfigure.sh ├── reexec.sh ├── rekey.sh ├── rsa_openssh.prv ├── rsa_openssh.pub ├── rsa_ssh2.prv ├── scp-ssh-wrapper.sh ├── scp-uri.sh ├── scp.sh ├── scp3.sh ├── servcfginclude.sh ├── setuid-allowed.c ├── sftp-badcmds.sh ├── sftp-batch.sh ├── sftp-chroot.sh ├── sftp-cmds.sh ├── sftp-glob.sh ├── sftp-perm.sh ├── sftp-uri.sh ├── sftp.sh ├── ssh-com-client.sh ├── ssh-com-keygen.sh ├── ssh-com-sftp.sh ├── ssh-com.sh ├── ssh2putty.sh ├── sshcfgparse.sh ├── sshfp-connect.sh ├── sshsig.sh ├── stderr-after-eof.sh ├── stderr-data.sh ├── t11.ok ├── t4.ok ├── t5.ok ├── test-exec.sh ├── timestamp.c ├── transfer.sh ├── try-ciphers.sh ├── unittests │ ├── Makefile │ ├── Makefile.inc │ ├── authopt │ │ ├── Makefile │ │ ├── testdata │ │ │ ├── all_permit.cert │ │ │ ├── bad_sourceaddr.cert │ │ │ ├── force_command.cert │ │ │ ├── host.cert │ │ │ ├── mktestdata.sh │ │ │ ├── no_agentfwd.cert │ │ │ ├── no_permit.cert │ │ │ ├── no_portfwd.cert │ │ │ ├── no_pty.cert │ │ │ ├── no_user_rc.cert │ │ │ ├── no_x11fwd.cert │ │ │ ├── only_agentfwd.cert │ │ │ ├── only_portfwd.cert │ │ │ ├── only_pty.cert │ │ │ ├── only_user_rc.cert │ │ │ ├── only_x11fwd.cert │ │ │ ├── sourceaddr.cert │ │ │ └── unknown_critical.cert │ │ └── tests.c │ ├── bitmap │ │ ├── Makefile │ │ └── tests.c │ ├── conversion │ │ ├── Makefile │ │ └── tests.c │ ├── hostkeys │ │ ├── Makefile │ │ ├── mktestdata.sh │ │ ├── test_iterate.c │ │ ├── testdata │ │ │ ├── dsa_1.pub │ │ │ ├── dsa_2.pub │ │ │ ├── dsa_3.pub │ │ │ ├── dsa_4.pub │ │ │ ├── dsa_5.pub │ │ │ ├── dsa_6.pub │ │ │ ├── ecdsa_1.pub │ │ │ ├── ecdsa_2.pub │ │ │ ├── ecdsa_3.pub │ │ │ ├── ecdsa_4.pub │ │ │ ├── ecdsa_5.pub │ │ │ ├── ecdsa_6.pub │ │ │ ├── ed25519_1.pub │ │ │ ├── ed25519_2.pub │ │ │ ├── ed25519_3.pub │ │ │ ├── ed25519_4.pub │ │ │ ├── ed25519_5.pub │ │ │ ├── ed25519_6.pub │ │ │ ├── known_hosts │ │ │ ├── rsa1_1.pub │ │ │ ├── rsa1_2.pub │ │ │ ├── rsa1_3.pub │ │ │ ├── rsa1_4.pub │ │ │ ├── rsa1_5.pub │ │ │ ├── rsa1_6.pub │ │ │ ├── rsa_1.pub │ │ │ ├── rsa_2.pub │ │ │ ├── rsa_3.pub │ │ │ ├── rsa_4.pub │ │ │ ├── rsa_5.pub │ │ │ └── rsa_6.pub │ │ └── tests.c │ ├── kex │ │ ├── Makefile │ │ ├── test_kex.c │ │ ├── test_proposal.c │ │ └── tests.c │ ├── match │ │ ├── Makefile │ │ └── tests.c │ ├── misc │ │ ├── Makefile │ │ ├── test_argv.c │ │ ├── test_convtime.c │ │ ├── test_expand.c │ │ ├── test_hpdelim.c │ │ ├── test_parse.c │ │ ├── test_ptimeout.c │ │ ├── test_strdelim.c │ │ └── tests.c │ ├── sshbuf │ │ ├── Makefile │ │ ├── test_sshbuf.c │ │ ├── test_sshbuf_fixed.c │ │ ├── test_sshbuf_fuzz.c │ │ ├── test_sshbuf_getput_basic.c │ │ ├── test_sshbuf_getput_crypto.c │ │ ├── test_sshbuf_getput_fuzz.c │ │ ├── test_sshbuf_misc.c │ │ └── tests.c │ ├── sshkey │ │ ├── Makefile │ │ ├── common.c │ │ ├── common.h │ │ ├── mktestdata.sh │ │ ├── test_file.c │ │ ├── test_fuzz.c │ │ ├── test_sshkey.c │ │ ├── testdata │ │ │ ├── dsa_1 │ │ │ ├── dsa_1-cert.fp │ │ │ ├── dsa_1-cert.pub │ │ │ ├── dsa_1.fp │ │ │ ├── dsa_1.fp.bb │ │ │ ├── dsa_1.param.g │ │ │ ├── dsa_1.param.priv │ │ │ ├── dsa_1.param.pub │ │ │ ├── dsa_1.pub │ │ │ ├── dsa_1_pw │ │ │ ├── dsa_2 │ │ │ ├── dsa_2.fp │ │ │ ├── dsa_2.fp.bb │ │ │ ├── dsa_2.pub │ │ │ ├── dsa_n │ │ │ ├── dsa_n_pw │ │ │ ├── ecdsa_1 │ │ │ ├── ecdsa_1-cert.fp │ │ │ ├── ecdsa_1-cert.pub │ │ │ ├── ecdsa_1.fp │ │ │ ├── ecdsa_1.fp.bb │ │ │ ├── ecdsa_1.param.curve │ │ │ ├── ecdsa_1.param.priv │ │ │ ├── ecdsa_1.param.pub │ │ │ ├── ecdsa_1.pub │ │ │ ├── ecdsa_1_pw │ │ │ ├── ecdsa_2 │ │ │ ├── ecdsa_2.fp │ │ │ ├── ecdsa_2.fp.bb │ │ │ ├── ecdsa_2.param.curve │ │ │ ├── ecdsa_2.param.priv │ │ │ ├── ecdsa_2.param.pub │ │ │ ├── ecdsa_2.pub │ │ │ ├── ecdsa_n │ │ │ ├── ecdsa_n_pw │ │ │ ├── ecdsa_sk1 │ │ │ ├── ecdsa_sk1-cert.fp │ │ │ ├── ecdsa_sk1-cert.pub │ │ │ ├── ecdsa_sk1.fp │ │ │ ├── ecdsa_sk1.fp.bb │ │ │ ├── ecdsa_sk1.pub │ │ │ ├── ecdsa_sk1_pw │ │ │ ├── ecdsa_sk2 │ │ │ ├── ecdsa_sk2.fp │ │ │ ├── ecdsa_sk2.fp.bb │ │ │ ├── ecdsa_sk2.pub │ │ │ ├── ed25519_1 │ │ │ ├── ed25519_1-cert.fp │ │ │ ├── ed25519_1-cert.pub │ │ │ ├── ed25519_1.fp │ │ │ ├── ed25519_1.fp.bb │ │ │ ├── ed25519_1.pub │ │ │ ├── ed25519_1_pw │ │ │ ├── ed25519_2 │ │ │ ├── ed25519_2.fp │ │ │ ├── ed25519_2.fp.bb │ │ │ ├── ed25519_2.pub │ │ │ ├── ed25519_sk1 │ │ │ ├── ed25519_sk1-cert.fp │ │ │ ├── ed25519_sk1-cert.pub │ │ │ ├── ed25519_sk1.fp │ │ │ ├── ed25519_sk1.fp.bb │ │ │ ├── ed25519_sk1.pub │ │ │ ├── ed25519_sk1_pw │ │ │ ├── ed25519_sk2 │ │ │ ├── ed25519_sk2.fp │ │ │ ├── ed25519_sk2.fp.bb │ │ │ ├── ed25519_sk2.pub │ │ │ ├── pw │ │ │ ├── rsa_1 │ │ │ ├── rsa_1-cert.fp │ │ │ ├── rsa_1-cert.pub │ │ │ ├── rsa_1.fp │ │ │ ├── rsa_1.fp.bb │ │ │ ├── rsa_1.param.n │ │ │ ├── rsa_1.param.p │ │ │ ├── rsa_1.param.q │ │ │ ├── rsa_1.pub │ │ │ ├── rsa_1_pw │ │ │ ├── rsa_1_sha1 │ │ │ ├── rsa_1_sha1-cert.pub │ │ │ ├── rsa_1_sha1.pub │ │ │ ├── rsa_1_sha512 │ │ │ ├── rsa_1_sha512-cert.pub │ │ │ ├── rsa_1_sha512.pub │ │ │ ├── rsa_2 │ │ │ ├── rsa_2.fp │ │ │ ├── rsa_2.fp.bb │ │ │ ├── rsa_2.param.n │ │ │ ├── rsa_2.param.p │ │ │ ├── rsa_2.param.q │ │ │ ├── rsa_2.pub │ │ │ ├── rsa_n │ │ │ └── rsa_n_pw │ │ └── tests.c │ ├── sshsig │ │ ├── Makefile │ │ ├── mktestdata.sh │ │ ├── testdata │ │ │ ├── dsa │ │ │ ├── dsa.pub │ │ │ ├── dsa.sig │ │ │ ├── ecdsa │ │ │ ├── ecdsa.pub │ │ │ ├── ecdsa.sig │ │ │ ├── ecdsa_sk │ │ │ ├── ecdsa_sk.pub │ │ │ ├── ecdsa_sk.sig │ │ │ ├── ecdsa_sk_webauthn.pub │ │ │ ├── ecdsa_sk_webauthn.sig │ │ │ ├── ed25519 │ │ │ ├── ed25519.pub │ │ │ ├── ed25519.sig │ │ │ ├── ed25519_sk │ │ │ ├── ed25519_sk.pub │ │ │ ├── ed25519_sk.sig │ │ │ ├── namespace │ │ │ ├── rsa │ │ │ ├── rsa.pub │ │ │ ├── rsa.sig │ │ │ └── signed-data │ │ ├── tests.c │ │ └── webauthn.html │ ├── test_helper │ │ ├── Makefile │ │ ├── fuzz.c │ │ ├── test_helper.c │ │ └── test_helper.h │ ├── utf8 │ │ ├── Makefile │ │ └── tests.c │ └── win32compat │ │ ├── dir_tests.c │ │ ├── file_tests.c │ │ ├── miscellaneous_tests.c │ │ ├── signal_tests.c │ │ ├── socket_tests.c │ │ ├── string_tests.c │ │ ├── tests.c │ │ └── tests.h ├── valgrind-unit.sh └── yes-head.sh ├── rijndael.c ├── rijndael.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 ├── scp.0 ├── scp.1 ├── scp.c ├── servconf.c ├── servconf.h ├── serverloop.c ├── serverloop.h ├── session.c ├── session.h ├── sftp-client.c ├── sftp-client.h ├── sftp-common.c ├── sftp-common.h ├── sftp-glob.c ├── sftp-realpath.c ├── sftp-server-main.c ├── sftp-server.0 ├── sftp-server.8 ├── sftp-server.c ├── sftp-usergroup.c ├── sftp-usergroup.h ├── sftp.0 ├── sftp.1 ├── sftp.c ├── sftp.h ├── sk-api.h ├── sk-usbhid.c ├── smult_curve25519_ref.c ├── sntrup761.c ├── sntrup761.sh ├── srclimit.c ├── srclimit.h ├── ssh-add.0 ├── ssh-add.1 ├── ssh-add.c ├── ssh-agent.0 ├── ssh-agent.1 ├── ssh-agent.c ├── ssh-dss.c ├── ssh-ecdsa-sk.c ├── ssh-ecdsa.c ├── ssh-ed25519-sk.c ├── ssh-ed25519.c ├── ssh-gss.h ├── ssh-keygen.0 ├── ssh-keygen.1 ├── ssh-keygen.c ├── ssh-keyscan.0 ├── ssh-keyscan.1 ├── ssh-keyscan.c ├── ssh-keysign.0 ├── ssh-keysign.8 ├── ssh-keysign.c ├── ssh-pkcs11-client.c ├── ssh-pkcs11-helper.0 ├── ssh-pkcs11-helper.8 ├── ssh-pkcs11-helper.c ├── ssh-pkcs11.c ├── ssh-pkcs11.h ├── ssh-rsa.c ├── ssh-sandbox.h ├── ssh-sk-client.c ├── ssh-sk-helper.0 ├── ssh-sk-helper.8 ├── ssh-sk-helper.c ├── ssh-sk.c ├── ssh-sk.h ├── ssh-xmss.c ├── ssh.0 ├── ssh.1 ├── ssh.c ├── ssh.h ├── ssh2.h ├── ssh_api.c ├── ssh_api.h ├── ssh_config ├── ssh_config.0 ├── ssh_config.5 ├── sshbuf-getput-basic.c ├── sshbuf-getput-crypto.c ├── sshbuf-io.c ├── sshbuf-misc.c ├── sshbuf.c ├── sshbuf.h ├── sshconnect.c ├── sshconnect.h ├── sshconnect2.c ├── sshd-common.c ├── sshd-common.h ├── sshd-session.c ├── sshd.0 ├── sshd.8 ├── sshd.c ├── sshd_config ├── sshd_config.0 ├── sshd_config.5 ├── ssherr.c ├── ssherr.h ├── sshfileperm.h ├── sshkey-xmss.c ├── sshkey-xmss.h ├── sshkey.c ├── sshkey.h ├── sshlogin.c ├── sshlogin.h ├── sshpty.c ├── sshpty.h ├── sshsig.c ├── sshsig.h ├── sshtty.c ├── survey.sh.in ├── ttymodes.c ├── ttymodes.h ├── uidswap.c ├── uidswap.h ├── umac.c ├── umac.h ├── umac128.c ├── utf8.c ├── utf8.h ├── version.h ├── xmalloc.c ├── xmalloc.h ├── xmss_commons.c ├── xmss_commons.h ├── xmss_fast.c ├── xmss_fast.h ├── xmss_hash.c ├── xmss_hash.h ├── xmss_hash_address.c ├── xmss_hash_address.h ├── xmss_wots.c └── xmss_wots.h /.git_allowed_signers: -------------------------------------------------------------------------------- 1 | dtucker@dtucker.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKecyjh9aNmD4rb8WblA8v91JjRb0Cd2JtkzqxcggGeG 2 | dtucker@dtucker.net sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBDV81zWQ1+XVfWH5z4L4klDQ/z/6l2GLphfSTX/Rmq6kL5H8mkfzUlryxLlkN8cD9srtVJBAmwJWfJBNsCo958YAAAAEc3NoOg== 3 | 4 | djm@mindrot.org sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBLnJo3ZVDENYZGXm5uO9lU7b0iDFq5gHpTu1MaHPWTEfPdvw+AjFQQ/q5YizuMJkXGsMdYmblJEJZYHpm9IS7ZkAAAAEc3NoOg== 5 | djm@mindrot.org sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBJoAXBTQalfg+kC5wy1vE7HkIHtVnmV6AUuuIo9KQ1P+70juHwvsFKpsGaqQbrHJkTVgYDGVP02XHj8+Fb18yBIAAAAEc3NoOg== 6 | djm@mindrot.org sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBH+z1I48s6ydOhP5SJmI02zVCLf0K15B+UMHgoTIKVfUIv5oDoVX7e9f+7QiRmTeEOdZfQydiaVqsfi7qPSve+0AAAAEc3NoOg== 7 | djm@mindrot.org sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBPM4BmUg/fMnsl42JwktTekk/mB8Be3M+yK2ayg6lqYsqEri8yhRx84gey51OHKVk1TwlGbJjcMHI4URreDBEMQAAAAEc3NoOg== 8 | -------------------------------------------------------------------------------- /.git_allowed_signers.asc: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP SIGNATURE----- 2 | 3 | iQIzBAABCgAdFiEEcWi5g4FaXu9ZpK39Kj9BTnNgYLoFAmYHnZ8ACgkQKj9BTnNg 4 | YLquuQ/6A8E6P2jcgn3wmbbCTXP7kmxoh3nmw/e6PC8CEua1512oT3GHOKVD5cGK 5 | cgYRObpWvjOjg7L1HRABftq7a9M2zfsGnY/WNe3/fbetfkyY8hG8c31vA1ePIOt2 6 | AjBLCWFblH0CtyH/MssoQ19JCLtXK/GmekB1Q0JzyOog7w/0r3CKuUnZ0juCYR1R 7 | 4FBePl5l3nFSZEcFEdptGlNGeuolS5XBCqB9Y91TCzkVkH5eXUUW+shgjNhWCEhT 8 | pZvkxfhsmOEnwNofyPdgKVfDBVkHmvuC67EU395mJVN4c2NZ8pOztb9hOt3xr980 9 | q44I4kT2NpaApCx1dWIGhMy/37LJ8heI0W1B+ofTA5n34/RU8UXH3SCkj2AK6Ao5 10 | H2u8vbmuWKUCiECmrw35EeKGmtuK/bWJzx3KBP7fx5J9S3mWUgT4W4xlWNN9RWoU 11 | sSvH1ppie5ARINVaAWl5k44fk60ahTf80DbQBIOZBmQn7myZZka+yGcQbAiZZ1Gc 12 | 0l8+Nf5Ao1ckmuyY5o8FyWdsyDeK3+MqjPn5Rr1CqbKCn2VnqrVWbI33Eyu8c96U 13 | bxVgU5H1BDhNjJC8UrT3LFPvJMO8p3a0IJ3eHydjk2jVOhOdBZmA0yoqUTrhPpXq 14 | ymIHESjDJR8TDe4TCfb46o9oEC3cdbDwgnzPqdg0n+0uIsJLYiU= 15 | =gl+l 16 | -----END PGP SIGNATURE----- 17 | -------------------------------------------------------------------------------- /.github/configure.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | . .github/configs $1 4 | 5 | printf "$ " 6 | 7 | if [ "x$CC" != "x" ]; then 8 | printf "CC='$CC' " 9 | fi 10 | if [ "x$CFLAGS" != "x" ]; then 11 | printf "CFLAGS='$CFLAGS' " 12 | fi 13 | if [ "x$CPPFLAGS" != "x" ]; then 14 | printf "CPPFLAGS='$CPPFLAGS' " 15 | fi 16 | if [ "x$LDFLAGS" != "x" ]; then 17 | printf "LDFLAGS='$LDFLAGS' " 18 | fi 19 | 20 | echo ./configure ${CONFIGFLAGS} 21 | ./configure ${CONFIGFLAGS} 2>&1 22 | -------------------------------------------------------------------------------- /.github/workflows/cifuzz.yml: -------------------------------------------------------------------------------- 1 | name: CIFuzz 2 | on: 3 | workflow_dispatch: # disable for win32-openssh fork 4 | # push: 5 | # paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/c-cpp.yaml' ] 6 | # pull_request: 7 | # paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/c-cpp.yaml' ] 8 | 9 | jobs: 10 | Fuzzing: 11 | if: github.repository != 'openssh/openssh-portable-selfhosted' 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Build Fuzzers 15 | id: build 16 | uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master 17 | with: 18 | oss-fuzz-project-name: 'openssh' 19 | dry-run: false 20 | language: c++ 21 | - name: Run Fuzzers 22 | uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master 23 | with: 24 | oss-fuzz-project-name: 'openssh' 25 | fuzz-seconds: 600 26 | dry-run: false 27 | language: c++ 28 | - name: Upload Crash 29 | uses: actions/upload-artifact@main 30 | if: failure() && steps.build.outcome == 'success' 31 | with: 32 | name: artifacts 33 | path: ./out/artifacts 34 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Reporting OpenSSH Security Issues 2 | 3 | To report security issues in OpenSSH, please refer to our website 4 | [OpenSSH Security](https://www.openssh.com/security.html). 5 | 6 | -------------------------------------------------------------------------------- /aclocal.m4: -------------------------------------------------------------------------------- 1 | # generated automatically by aclocal 1.16.5 -*- Autoconf -*- 2 | 3 | # Copyright (C) 1996-2021 Free Software Foundation, Inc. 4 | 5 | # This file is free software; the Free Software Foundation 6 | # gives unlimited permission to copy and/or distribute it, 7 | # with or without modifications, as long as this notice is preserved. 8 | 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 12 | # PARTICULAR PURPOSE. 13 | 14 | m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) 15 | m4_include([m4/openssh.m4]) 16 | -------------------------------------------------------------------------------- /canohost.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: canohost.h,v 1.12 2016/03/07 19:02:43 djm Exp $ */ 2 | 3 | /* 4 | * Author: Tatu Ylonen 5 | * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland 6 | * All rights reserved 7 | * 8 | * As far as I am concerned, the code I have written for this software 9 | * can be used freely for any purpose. Any derived versions of this 10 | * software must be clearly marked as such, and if the derived work is 11 | * incompatible with the protocol description in the RFC file, it must be 12 | * called by a name other than "ssh" or "Secure Shell". 13 | */ 14 | 15 | #ifndef _CANOHOST_H 16 | #define _CANOHOST_H 17 | 18 | char *get_peer_ipaddr(int); 19 | int get_peer_port(int); 20 | char *get_local_ipaddr(int); 21 | char *get_local_name(int); 22 | int get_local_port(int); 23 | 24 | #endif /* _CANOHOST_H */ 25 | 26 | void ipv64_normalise_mapped(struct sockaddr_storage *, socklen_t *); 27 | -------------------------------------------------------------------------------- /chacha.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: chacha.h,v 1.5 2021/04/03 05:54:14 djm Exp $ */ 2 | 3 | /* 4 | chacha-merged.c version 20080118 5 | D. J. Bernstein 6 | Public domain. 7 | */ 8 | 9 | #ifndef CHACHA_H 10 | #define CHACHA_H 11 | 12 | #include 13 | #include 14 | 15 | struct chacha_ctx { 16 | u_int input[16]; 17 | }; 18 | 19 | #define CHACHA_MINKEYLEN 16 20 | #define CHACHA_NONCELEN 8 21 | #define CHACHA_CTRLEN 8 22 | #define CHACHA_STATELEN (CHACHA_NONCELEN+CHACHA_CTRLEN) 23 | #define CHACHA_BLOCKLEN 64 24 | 25 | void chacha_keysetup(struct chacha_ctx *x, const u_char *k, u_int kbits) 26 | __attribute__((__bounded__(__minbytes__, 2, CHACHA_MINKEYLEN))); 27 | void chacha_ivsetup(struct chacha_ctx *x, const u_char *iv, const u_char *ctr) 28 | __attribute__((__bounded__(__minbytes__, 2, CHACHA_NONCELEN))) 29 | __attribute__((__bounded__(__minbytes__, 3, CHACHA_CTRLEN))); 30 | void chacha_encrypt_bytes(struct chacha_ctx *x, const u_char *m, 31 | u_char *c, u_int bytes) 32 | __attribute__((__bounded__(__buffer__, 2, 4))) 33 | __attribute__((__bounded__(__buffer__, 3, 4))); 34 | 35 | #endif /* CHACHA_H */ 36 | 37 | -------------------------------------------------------------------------------- /cleanup.c: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: cleanup.c,v 1.5 2006/08/03 03:34:42 deraadt Exp $ */ 2 | /* 3 | * Copyright (c) 2003 Markus Friedl 4 | * 5 | * Permission to use, copy, modify, and distribute this software for any 6 | * purpose with or without fee is hereby granted, provided that the above 7 | * copyright notice and this permission notice appear in all copies. 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | */ 17 | 18 | #include "includes.h" 19 | 20 | #include 21 | 22 | #include 23 | #include 24 | 25 | #include "log.h" 26 | 27 | /* default implementation */ 28 | void 29 | cleanup_exit(int i) 30 | { 31 | _exit(i); 32 | } 33 | -------------------------------------------------------------------------------- /contrib/Makefile: -------------------------------------------------------------------------------- 1 | PKG_CONFIG = pkg-config 2 | 3 | all: 4 | @echo "Valid targets: gnome-ssh-askpass1 gnome-ssh-askpass2 gnome-ssk-askpass3" 5 | 6 | gnome-ssh-askpass1: gnome-ssh-askpass1.c 7 | $(CC) $(CFLAGS) `gnome-config --cflags gnome gnomeui` \ 8 | gnome-ssh-askpass1.c -o gnome-ssh-askpass1 \ 9 | `gnome-config --libs gnome gnomeui` 10 | 11 | gnome-ssh-askpass2: gnome-ssh-askpass2.c 12 | $(CC) $(CFLAGS) `$(PKG_CONFIG) --cflags gtk+-2.0` \ 13 | gnome-ssh-askpass2.c -o gnome-ssh-askpass2 \ 14 | `$(PKG_CONFIG) --libs gtk+-2.0 x11` 15 | 16 | gnome-ssh-askpass3: gnome-ssh-askpass3.c 17 | $(CC) $(CFLAGS) `$(PKG_CONFIG) --cflags gtk+-3.0` \ 18 | gnome-ssh-askpass3.c -o gnome-ssh-askpass3 \ 19 | `$(PKG_CONFIG) --libs gtk+-3.0 x11` 20 | 21 | clean: 22 | rm -f *.o gnome-ssh-askpass gnome-ssh-askpass[123] 23 | -------------------------------------------------------------------------------- /contrib/aix/pam.conf: -------------------------------------------------------------------------------- 1 | # 2 | # PAM configuration file /etc/pam.conf 3 | # Example for OpenSSH on AIX 5.2 4 | # 5 | 6 | # Authentication Management 7 | sshd auth required /usr/lib/security/pam_aix 8 | OTHER auth required /usr/lib/security/pam_aix 9 | 10 | # Account Management 11 | sshd account required /usr/lib/security/pam_aix 12 | OTHER account required /usr/lib/security/pam_aix 13 | 14 | # Password Management 15 | sshd password required /usr/lib/security/pam_aix 16 | OTHER password required /usr/lib/security/pam_aix 17 | 18 | # Session Management 19 | sshd session required /usr/lib/security/pam_aix 20 | OTHER session required /usr/lib/security/pam_aix 21 | -------------------------------------------------------------------------------- /contrib/cygwin/sshd-inetd: -------------------------------------------------------------------------------- 1 | # This file can be used to enable sshd as a slave of the inetd service 2 | # To do so, the line below should be uncommented. 3 | @COMMENT@ ssh stream tcp nowait root /usr/sbin/sshd sshd -i 4 | 5 | -------------------------------------------------------------------------------- /contrib/hpux/egd: -------------------------------------------------------------------------------- 1 | # EGD_START: Set to 1 to start entropy gathering daemon 2 | # EGD_ARGS: Command line arguments to pass to egd 3 | # EGD_LOG: EGD stdout and stderr log file (default /etc/opt/egd/egd.log) 4 | # 5 | # To configure the egd environment: 6 | 7 | # groupadd egd 8 | # useradd -g egd egd 9 | # mkdir -p /etc/opt/egd 10 | # chown egd:egd /etc/opt/egd 11 | # chmod 711 /etc/opt/egd 12 | 13 | EGD_START=1 14 | EGD_ARGS='/etc/opt/egd/entropy' 15 | EGD_LOG= 16 | -------------------------------------------------------------------------------- /contrib/hpux/sshd: -------------------------------------------------------------------------------- 1 | # SSHD_START: Set to 1 to start SSH daemon 2 | # SSHD_ARGS: Command line arguments to pass to sshd 3 | # 4 | SSHD_START=1 5 | SSHD_ARGS= 6 | -------------------------------------------------------------------------------- /contrib/redhat/gnome-ssh-askpass.csh: -------------------------------------------------------------------------------- 1 | setenv SSH_ASKPASS /usr/libexec/openssh/gnome-ssh-askpass 2 | -------------------------------------------------------------------------------- /contrib/redhat/gnome-ssh-askpass.sh: -------------------------------------------------------------------------------- 1 | SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass 2 | export SSH_ASKPASS 3 | -------------------------------------------------------------------------------- /contrib/redhat/sshd.pam: -------------------------------------------------------------------------------- 1 | #%PAM-1.0 2 | auth required pam_stack.so service=system-auth 3 | account required pam_nologin.so 4 | account required pam_stack.so service=system-auth 5 | password required pam_stack.so service=system-auth 6 | session required pam_stack.so service=system-auth 7 | -------------------------------------------------------------------------------- /contrib/sshd.pam.freebsd: -------------------------------------------------------------------------------- 1 | sshd auth required pam_unix.so try_first_pass 2 | sshd account required pam_unix.so 3 | sshd password required pam_permit.so 4 | sshd session required pam_permit.so 5 | 6 | -------------------------------------------------------------------------------- /contrib/sshd.pam.generic: -------------------------------------------------------------------------------- 1 | #%PAM-1.0 2 | auth required /lib/security/pam_unix.so shadow nodelay 3 | account required /lib/security/pam_nologin.so 4 | account required /lib/security/pam_unix.so 5 | password required /lib/security/pam_cracklib.so 6 | password required /lib/security/pam_unix.so shadow nullok use_authtok 7 | session required /lib/security/pam_unix.so 8 | session required /lib/security/pam_limits.so 9 | -------------------------------------------------------------------------------- /contrib/suse/rc.config.sshd: -------------------------------------------------------------------------------- 1 | # 2 | # Start the Secure Shell (SSH) Daemon? 3 | # 4 | START_SSHD="yes" 5 | 6 | -------------------------------------------------------------------------------- /contrib/suse/sysconfig.ssh: -------------------------------------------------------------------------------- 1 | ## Path: Network/Remote access/SSH 2 | ## Description: SSH server settings 3 | ## Type: string 4 | ## Default: "" 5 | ## ServiceRestart: sshd 6 | # 7 | # Options for sshd 8 | # 9 | SSHD_OPTS="" 10 | -------------------------------------------------------------------------------- /contrib/win32/openssh/AzDOBuildTools/AzDOBuildTools.psd1: -------------------------------------------------------------------------------- 1 | ## 2 | ## Azure DevOps CI build tools 3 | ## (TODO: Add appropriate copyright) 4 | ## 5 | @{ 6 | 7 | RootModule = './AzDOBuildTools.psm1' 8 | 9 | ModuleVersion = '1.0.0' 10 | 11 | GUID = '0b8fa798-ea71-40c7-b9ab-a417958bb3c4' 12 | 13 | Author = 'Microsoft Corporation' 14 | 15 | CompanyName = 'Microsoft Corporation' 16 | 17 | Copyright = '(c) Microsoft Corporation. All rights reserved.' 18 | 19 | Description = 'AzDO build tools for Win32-OpenSSH repository.' 20 | 21 | PowerShellVersion = '5.1' 22 | DotnetFrameworkVersion = '4.6.1' 23 | CLRVersion = '4.0.0' 24 | 25 | NestedModules = @( 26 | '../OpenSSHCommonUtils.psm1', 27 | '../OpenSSHBuildHelper.psm1', 28 | '../OpenSSHTestHelper.psm1') 29 | 30 | FunctionsToExport = @( 31 | 'Invoke-AzDOBuild', 32 | 'Install-OpenSSH', 33 | 'Invoke-OpenSSHTests', 34 | 'Copy-OpenSSHTestResults', 35 | 'Copy-BuildResults', 36 | 'Copy-UnitTests', 37 | 'Install-UnitTests', 38 | 'Clear-TestEnvironmentSetup') 39 | } 40 | -------------------------------------------------------------------------------- /contrib/win32/openssh/MSG00001.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerShell/openssh-portable/bdacf9868fe9e8024a5312861b7aaa6faba1821f/contrib/win32/openssh/MSG00001.bin -------------------------------------------------------------------------------- /contrib/win32/openssh/OpenSSHUtils.psd1: -------------------------------------------------------------------------------- 1 | # 2 | # Module manifest for module 'OpenSSHUtils' 3 | # 4 | # Generated on: 6/9/2017 5 | # 6 | 7 | @{ 8 | 9 | # Script module or binary module file associated with this manifest 10 | ModuleToProcess = 'OpenSSHUtils.psm1' 11 | 12 | # Version number of this module. 13 | ModuleVersion = '1.0.0.1' 14 | 15 | # ID used to uniquely identify this module 16 | GUID = '08285dee-3d08-476b-8948-1a7e2562c079' 17 | 18 | # Author of this module 19 | Author = 'Yanbing Wang' 20 | 21 | # Company or vendor of this module 22 | CompanyName = '' 23 | 24 | # Copyright statement for this module 25 | Copyright = '' 26 | 27 | # Description of the functionality provided by this module 28 | Description = 'Configure OpenSSH for Windows related security settings like file owner and permissions.' 29 | 30 | # Functions to export from this module 31 | FunctionsToExport = '*' 32 | 33 | # Cmdlets to export from this module 34 | CmdletsToExport = '*' 35 | 36 | # Variables to export from this module 37 | VariablesToExport = '*' 38 | 39 | # Aliases to export from this module 40 | AliasesToExport = '*' 41 | 42 | # Minimum version of the Windows PowerShell engine required by this module 43 | PowerShellVersion = '2.0' 44 | } 45 | -------------------------------------------------------------------------------- /contrib/win32/openssh/Win32-OpenSSh-design.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerShell/openssh-portable/bdacf9868fe9e8024a5312861b7aaa6faba1821f/contrib/win32/openssh/Win32-OpenSSh-design.pptx -------------------------------------------------------------------------------- /contrib/win32/openssh/config.ps1: -------------------------------------------------------------------------------- 1 | Param($Config_h_vs, $Config_h, $VCIncludePath, $OutCRTHeader) 2 | 3 | Copy-Item $Config_h_vs $Config_h -Force 4 | if (Test-Path $OutCRTHeader) {exit} 5 | $headers = ("stdio.h", "string.h", "sys\types.h", "ctype.h", "stdlib.h", "sys\stat.h", "fcntl.h", "time.h") 6 | $paths = $VCIncludePath.Split(";") 7 | Set-Content -Path $OutCRTHeader -Value "/*`r`n * DO NOT EDIT - AutoGenerated by config.ps1`r`n */`r`n" -Force 8 | foreach ($header in $headers) { 9 | foreach ($path in $paths) 10 | { 11 | if ($path -and (Test-Path (Join-Path $path $header))) 12 | { 13 | $entry = "#define " + $header.ToUpper().Replace(".","_").Replace("\","_") + " `"" + (Join-Path $path $header) + "`"" 14 | Add-Content -Path $OutCRTHeader -Value $entry 15 | break 16 | } 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /contrib/win32/openssh/config.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {C40EA84D-1664-404D-95C2-79A9E794A94D} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {E2570738-658F-4541-9487-90ECF5F26A93} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {464A0812-84B6-4B3D-B5FD-B3E7F0E0C10E} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | -------------------------------------------------------------------------------- /contrib/win32/openssh/etwgen.cmd: -------------------------------------------------------------------------------- 1 | mc -um -h ..\win32compat -r . openssh-events.man 2 | 3 | wevtutil im openssh-events.man -------------------------------------------------------------------------------- /contrib/win32/openssh/openssh-events.rc: -------------------------------------------------------------------------------- 1 | LANGUAGE 0x9,0x1 2 | 1 11 "MSG00001.bin" 3 | 1 WEVT_TEMPLATE "openssh-eventsTEMP.BIN" 4 | -------------------------------------------------------------------------------- /contrib/win32/openssh/openssh-eventsTEMP.BIN: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerShell/openssh-portable/bdacf9868fe9e8024a5312861b7aaa6faba1821f/contrib/win32/openssh/openssh-eventsTEMP.BIN -------------------------------------------------------------------------------- /contrib/win32/openssh/openssh_build.cmd: -------------------------------------------------------------------------------- 1 | msbuild /property:Configuration=Release /property:Platform=x64 Win32-OpenSSH.sln 2 | msbuild /property:Configuration=Release /property:Platform=x86 Win32-OpenSSH.sln 3 | msbuild /property:Configuration=Debug /property:Platform=x64 Win32-OpenSSH.sln 4 | msbuild /property:Configuration=Debug /property:Platform=x86 Win32-OpenSSH.sln 5 | -------------------------------------------------------------------------------- /contrib/win32/openssh/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by version.rc 4 | // 5 | 6 | // Next default values for new objects 7 | // 8 | #ifdef APSTUDIO_INVOKED 9 | #ifndef APSTUDIO_READONLY_SYMBOLS 10 | #define _APS_NEXT_RESOURCE_VALUE 101 11 | #define _APS_NEXT_COMMAND_VALUE 40001 12 | #define _APS_NEXT_CONTROL_VALUE 1000 13 | #define _APS_NEXT_SYMED_VALUE 101 14 | #endif 15 | #endif 16 | -------------------------------------------------------------------------------- /contrib/win32/openssh/sshTelemetryInternal.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include // Defines macros used by TraceLoggingProvider.h 4 | #include "TraceLoggingProvider.h" // The native TraceLogging API 5 | #include "MicrosoftTelemetry.h" 6 | 7 | // Forward-declare the g_hProvider1 variable that you will use for tracing 8 | TRACELOGGING_DECLARE_PROVIDER(g_hProvider1); -------------------------------------------------------------------------------- /contrib/win32/openssh/targetos.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | true 20 | 21 | 22 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/Debug.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifndef __attribute__ 3 | #define __attribute__(A) 4 | #endif 5 | 6 | #include "..\..\..\log.h" 7 | #include "..\..\..\ssherr.h" 8 | /* Enable the following for verbose logging */ 9 | #if (0) 10 | #define debug4 debug2 11 | #define debug5 debug3 12 | #else 13 | #define debug4(a,...) 14 | #define debug5(a,...) 15 | #endif -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/arpa/inet.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_INET_H 2 | #define COMPAT_INET_H 1 3 | 4 | /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/arpa/nameser.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_NAMESER_H 2 | #define COMPAT_NAMESER_H 1 3 | 4 | /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/ctype.h: -------------------------------------------------------------------------------- 1 | #include "crtheaders.h" 2 | #include CTYPE_H 3 | 4 | #define isascii __isascii 5 | 6 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/dirent.h: -------------------------------------------------------------------------------- 1 | // direntry functions in Windows platform like Ubix/Linux 2 | // opendir(), readdir(), closedir(). 3 | // NT_DIR * nt_opendir(char *name) ; 4 | // struct nt_dirent *nt_readdir(NT_DIR *dirp); 5 | // int nt_closedir(NT_DIR *dirp) ; 6 | 7 | #ifndef __DIRENT_H__ 8 | #define __DIRENT_H__ 9 | 10 | #include 11 | #include 12 | #include 13 | #include "..\misc_internal.h" 14 | 15 | struct dirent { 16 | int d_ino; /* Inode number */ 17 | char d_name[PATH_MAX]; /* Null-terminated filename */ 18 | }; 19 | 20 | typedef struct DIR_ DIR; 21 | 22 | DIR * opendir(const char*); 23 | int closedir(DIR*); 24 | struct dirent *readdir(void*); 25 | 26 | #endif -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/dlfcn.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #define RTLD_NOW 0 4 | 5 | HMODULE dlopen(const char *filename, int flags); 6 | 7 | int dlclose(HMODULE handle); 8 | void * dlsym(HMODULE handle, const char *symbol); 9 | char * dlerror(); 10 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/fnmatch.h: -------------------------------------------------------------------------------- 1 | #ifndef FNMATCH_H 2 | #define FNMATCH_H 1 3 | 4 | int fnmatch(const char *pattern, const char *string, int flags); 5 | 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/grp.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_GRP_H 2 | #define COMPAT_GRP_H 1 3 | 4 | #endif 5 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/libgen.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | char *basename(char *path); -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/net/if.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/netdb.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_NETDB_H 2 | #define COMPAT_NETDB_H 1 3 | 4 | /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/netinet/in.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_IN_H 2 | #define COMPAT_IN_H 1 3 | 4 | /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/netinet/in_systm.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_IN_SYSTM_H 2 | #define COMPAT_IN_SYSTM_H 1 3 | 4 | /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/netinet/ip.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_IP_H 2 | #define COMPAT_IP_H 1 3 | 4 | /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/netinet/tcp.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_TCP_H 2 | #define COMPAT_TCP_H 1 3 | 4 | 5 | /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/poll.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sys\types.h" 4 | #include "sys\socket.h" 5 | 6 | /* created to #def out decarations in open-bsd.h (that are defined in winsock2.h) */ 7 | 8 | int poll(struct pollfd *, nfds_t, int); -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/resolv.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_RESOLV_H 2 | #define COMPAT_RESOLV_H 1 3 | 4 | /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/stdio.h: -------------------------------------------------------------------------------- 1 | #include "crtheaders.h" 2 | #include STDIO_H 3 | 4 | /* stdio.h overrides */ 5 | FILE* w32_fopen_utf8(const char *, const char *); 6 | #define fopen w32_fopen_utf8 7 | 8 | char* w32_fgets(char *str, int n, FILE *stream); 9 | #define fgets w32_fgets 10 | 11 | int w32_setvbuf(FILE *stream,char *buffer, int mode, size_t size); 12 | #define setvbuf w32_setvbuf 13 | 14 | /* stdio.h additional definitions */ 15 | #define popen _popen 16 | #define pclose _pclose 17 | 18 | FILE* w32_fdopen(int fd, const char *mode); 19 | #define fdopen(a,b) w32_fdopen((a), (b)) 20 | 21 | int w32_rename(const char *old_name, const char *new_name); 22 | #define rename w32_rename 23 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/stdlib.h: -------------------------------------------------------------------------------- 1 | #include "crtheaders.h" 2 | #include STDLIB_H 3 | 4 | #define environ _environ 5 | void freezero(void *, size_t); 6 | int setenv(const char *name, const char *value, int rewrite); 7 | #define system w32_system 8 | int w32_system(const char *command); 9 | char* realpath(const char *pathname, char *resolved); 10 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/string.h: -------------------------------------------------------------------------------- 1 | #include "crtheaders.h" 2 | #include STRING_H 3 | #include "utf.h" 4 | 5 | /* string.h overrides */ 6 | #define strcasecmp _stricmp 7 | #define strncasecmp _strnicmp 8 | char *w32_strerror(int); 9 | #define strerror w32_strerror 10 | #define strdup _strdup 11 | #define ERROR_MSG_MAXLEN 94 /* https://msdn.microsoft.com/en-us/library/51sah927.aspx */ 12 | 13 | static char errorBuf[ERROR_MSG_MAXLEN]; 14 | 15 | char *strndup(const char*, size_t); 16 | char * strrstr(const char *, const char *); -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/strings.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define bzero(p,l) memset((void *)(p),0,(size_t)(l)) 4 | 5 | void 6 | explicit_bzero(void *b, size_t len); -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/ioctl.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_IOCTL_H 2 | #define COMPAT_IOCTL_H 1 3 | 4 | 5 | /*ioctl macros and structs*/ 6 | #define TIOCGWINSZ 1 7 | struct winsize { 8 | unsigned short ws_row; /* rows, in characters */ 9 | unsigned short ws_col; /* columns, in character */ 10 | unsigned short ws_xpixel; /* horizontal size, pixels */ 11 | unsigned short ws_ypixel; /* vertical size, pixels */ 12 | }; 13 | 14 | int w32_ioctl(int d, int request, ...); 15 | #define ioctl w32_ioctl 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/param.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/resource.h: -------------------------------------------------------------------------------- 1 | #ifndef COMPAT_RESOURCE_H 2 | #define COMPAT_RESOURCE_H 1 3 | 4 | /* Compatibility header to avoid lots of #ifdef _WIN32's in includes.h */ 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/select.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Manoj Ampalam 3 | * 4 | * POSIX header and needed function definitions 5 | */ 6 | #pragma once 7 | 8 | /* total fds that can be allotted */ 9 | #define MAX_FDS 256 /* a 2^n number */ 10 | 11 | typedef struct w32_fd_set_ { 12 | unsigned char bitmap[MAX_FDS >> 3]; 13 | }w32_fd_set; 14 | 15 | #define fd_set w32_fd_set 16 | 17 | #undef FD_ZERO 18 | #define FD_ZERO(set) (memset( (set), 0, sizeof(w32_fd_set))) 19 | #undef FD_SET 20 | #define FD_SET(fd,set) ( (set)->bitmap[(fd) >> 3] |= (0x80 >> ((fd) % 8))) 21 | #undef FD_ISSET 22 | #define FD_ISSET(fd, set) (( (set)->bitmap[(fd) >> 3] & (0x80 >> ((fd) % 8)))?1:0) 23 | #undef FD_CLR 24 | #define FD_CLR(fd, set) ((set)->bitmap[(fd) >> 3] &= (~(0x80 >> ((fd) % 8)))) 25 | 26 | #undef FD_SETSIZE 27 | #define FD_SETSIZE MAX_FDS 28 | 29 | int w32_select(int fds, w32_fd_set * , w32_fd_set * , w32_fd_set * , 30 | const struct w32_timeval *); 31 | #define select(a,b,c,d,e) w32_select((a), (b), (c), (d), (e)) 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/statvfs.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define ST_RDONLY 1 4 | #define ST_NOSUID 2 5 | typedef unsigned long fsblkcnt_t; 6 | typedef unsigned long fsfilcnt_t; 7 | 8 | struct statvfs { 9 | unsigned long f_bsize; /* File system block size. */ 10 | unsigned long f_frsize; /* Fundamental file system block size. */ 11 | fsblkcnt_t f_blocks; /* Total number of blocks on file system in */ 12 | /* units of f_frsize. */ 13 | fsblkcnt_t f_bfree; /* Total number of free blocks. */ 14 | fsblkcnt_t f_bavail; /* Number of free blocks available to */ 15 | /* non-privileged process. */ 16 | fsfilcnt_t f_files; /* Total number of file serial numbers. */ 17 | fsfilcnt_t f_ffree; /* Total number of free file serial numbers. */ 18 | fsfilcnt_t f_favail; /* Number of file serial numbers available to */ 19 | /* non-privileged process. */ 20 | unsigned long f_fsid; /* File system ID. */ 21 | unsigned long f_flag; /* BBit mask of f_flag values. */ 22 | unsigned long f_namemax;/* Maximum filename length. */ 23 | }; 24 | 25 | int statvfs(const char *, struct statvfs *); 26 | int fstatvfs(int, struct statvfs *); -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/time.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | #define utimbuf _utimbuf 5 | #define utimes w32_utimes 6 | 7 | #define timeval w32_timeval 8 | struct timeval 9 | { 10 | long long tv_sec; 11 | long tv_usec; 12 | }; 13 | 14 | int usleep(unsigned int); 15 | int gettimeofday(struct timeval *, void *); 16 | int nanosleep(const struct timespec *, struct timespec *); 17 | int w32_utimes(const char *, struct timeval *); -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/types.h: -------------------------------------------------------------------------------- 1 | #define __STDC__ 1 2 | #include "..\crtheaders.h" 3 | #include SYS_TYPES_H 4 | 5 | typedef _dev_t dev_t; 6 | typedef long long off_t; 7 | typedef unsigned int uid_t; 8 | typedef unsigned int gid_t; 9 | 10 | typedef unsigned short _mode_t; 11 | typedef _mode_t mode_t; 12 | typedef int ssize_t; 13 | typedef int pid_t; 14 | 15 | typedef unsigned int nfds_t; 16 | 17 | /* copied from Windows SDK corecrt_wstdio.h to accomodate FILE definition via types.h in Unix */ 18 | #ifndef _FILE_DEFINED 19 | #define _FILE_DEFINED 20 | typedef struct _iobuf 21 | { 22 | void* _Placeholder; 23 | } FILE; 24 | #endif 25 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/uio.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct iovec 4 | { 5 | void *iov_base; 6 | size_t iov_len; 7 | }; 8 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/un.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct sockaddr_un { 4 | short sun_family; /* AF_UNIX */ 5 | char sun_path[108]; /* path name (gag) */ 6 | }; 7 | 8 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/sys/wait.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | //#define _W_INT(w) (*(int*)&(w)) /* convert union wait to int */ 4 | //#define WIFEXITED(w) (!((_W_INT(w)) & 0377)) 5 | //#define WIFSTOPPED(w) ((_W_INT(w)) & 0100) 6 | //#define WIFSIGNALED(w) (!WIFEXITED(w) && !WIFSTOPPED(w)) 7 | //#define WEXITSTATUS(w) (int)(WIFEXITED(w) ? ((_W_INT(w) >> 8) & 0377) : -1) 8 | //#define WTERMSIG(w) (int)(WIFSIGNALED(w) ? (_W_INT(w) & 0177) : -1) 9 | 10 | #define WIFEXITED(w) TRUE 11 | #define WIFSTOPPED(w) TRUE 12 | #define WIFSIGNALED(w) FALSE 13 | #define WEXITSTATUS(w) w 14 | #define WTERMSIG(w) -1 15 | #define WNOHANG 1 16 | #define WUNTRACED 2 17 | 18 | /* wait pid options */ 19 | #define WNOHANG 1 20 | 21 | int waitpid(int pid, int *status, int options); -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/syslog.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | /* Compatibility header to give us some syslog-like functionality on Win32 */ 5 | 6 | #define LOG_CRIT (2) /* critical */ 7 | #define LOG_ERR (3) /* errors */ 8 | #define LOG_WARNING (4) /* warnings */ 9 | #define LOG_INFO (6) /* informational */ 10 | #define LOG_DEBUG (7) /* debug messages */ 11 | #define LOG_USER (1 << 3) /* user level messages */ 12 | #define LOG_DAEMON (3 << 3) /* daemons/servers */ 13 | #define LOG_AUTH (4 << 3) /* security messages */ 14 | #define LOG_LOCAL0 (16 << 3) /* reserved for local use */ 15 | #define LOG_LOCAL1 (17 << 3) /* reserved for local use */ 16 | #define LOG_LOCAL2 (18 << 3) /* reserved for local use */ 17 | #define LOG_LOCAL3 (19 << 3) /* reserved for local use */ 18 | #define LOG_LOCAL4 (20 << 3) /* reserved for local use */ 19 | #define LOG_LOCAL5 (21 << 3) /* reserved for local use */ 20 | #define LOG_LOCAL6 (22 << 3) /* reserved for local use */ 21 | #define LOG_LOCAL7 (23 << 3) /* reserved for local use */ 22 | 23 | #define LOG_PID 0x01 /* log the pid */ 24 | 25 | void openlog (const char *, unsigned int, int); 26 | void closelog (void); 27 | void syslog (int, const char *, const char *); 28 | 29 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/time.h: -------------------------------------------------------------------------------- 1 | #include "crtheaders.h" 2 | #include TIME_H 3 | 4 | #define localtime w32_localtime 5 | #define ctime w32_ctime 6 | 7 | struct tm *localtime_r(const time_t *, struct tm *); 8 | struct tm *w32_localtime(const time_t* sourceTime); 9 | char *w32_ctime(const time_t* sourceTime); 10 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/inc/utf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Manoj Ampalam 3 | * 4 | * UTF-16 <--> UTF-8 definitions 5 | */ 6 | #pragma once 7 | #ifndef UTF_H 8 | #define UTF_H 1 9 | 10 | wchar_t* utf8_to_utf16(const char *); 11 | char* utf16_to_utf8(const wchar_t*); 12 | 13 | #endif -------------------------------------------------------------------------------- /contrib/win32/win32compat/libwin32compat.q: -------------------------------------------------------------------------------- 1 | ! 2 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/ssh-agent/agent-request.h: -------------------------------------------------------------------------------- 1 | typedef unsigned char u_int8_t; 2 | typedef unsigned short u_int16_t; 3 | typedef unsigned int u_int32_t; 4 | typedef unsigned __int64 u_int64_t; 5 | #define __attribute__(a) 6 | #include 7 | #include "sshkey.h" 8 | #include "sshbuf.h" 9 | #include 10 | #include "authfd.h" 11 | #include "digest.h" 12 | 13 | 14 | /* key management */ 15 | int process_unsupported_request(struct sshbuf*, struct sshbuf*, struct agent_connection*); 16 | int process_add_identity(struct sshbuf*, struct sshbuf*, struct agent_connection*); 17 | int process_request_identities(struct sshbuf*, struct sshbuf*, struct agent_connection*); 18 | int process_sign_request(struct sshbuf*, struct sshbuf*, struct agent_connection*); 19 | int process_remove_key(struct sshbuf*, struct sshbuf*, struct agent_connection*); 20 | int process_remove_all(struct sshbuf*, struct sshbuf*, struct agent_connection*); 21 | int process_add_smartcard_key(struct sshbuf*, struct sshbuf*, struct agent_connection*); 22 | int process_remove_smartcard_key(struct sshbuf*, struct sshbuf*, struct agent_connection*); 23 | int process_extension(struct sshbuf*, struct sshbuf*, struct agent_connection*); 24 | 25 | /* auth */ 26 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/w32api_proxies.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Author: Yanbing Wang 3 | * 4 | * Support logon user call on Win32 based operating systems. 5 | * 6 | */ 7 | 8 | #pragma once 9 | 10 | #include 11 | #define SECURITY_WIN32 12 | #include 13 | #include 14 | 15 | BOOL pLogonUserExExW(wchar_t *, wchar_t *, wchar_t *, DWORD, DWORD, PTOKEN_GROUPS, PHANDLE, PSID *, PVOID *, LPDWORD, PQUOTA_LIMITS); 16 | BOOLEAN pTranslateNameW(LPCWSTR, EXTENDED_NAME_FORMAT, EXTENDED_NAME_FORMAT, LPWSTR, PULONG); 17 | NTSTATUS pLsaOpenPolicy(PLSA_UNICODE_STRING, PLSA_OBJECT_ATTRIBUTES, ACCESS_MASK, PLSA_HANDLE); 18 | NTSTATUS pLsaFreeMemory(PVOID); 19 | NTSTATUS pLsaAddAccountRights(LSA_HANDLE, PSID, PLSA_UNICODE_STRING, ULONG); 20 | ULONG pRtlNtStatusToDosError(NTSTATUS); 21 | NTSTATUS pLsaClose(LSA_HANDLE); 22 | NTSTATUS pLsaRemoveAccountRights(LSA_HANDLE, PSID, BOOLEAN, PLSA_UNICODE_STRING, ULONG); 23 | 24 | 25 | -------------------------------------------------------------------------------- /contrib/win32/win32compat/win32_sshtty.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Windows version of sshtty* routines implemented in sshtty.c 3 | */ 4 | 5 | #include 6 | #include "..\..\..\sshpty.h" 7 | static struct termios _saved_tio; 8 | static int _in_raw_mode = 0; 9 | 10 | /* 11 | * TTY raw mode routines for Windows 12 | */ 13 | 14 | struct termios term_settings; 15 | 16 | struct termios * 17 | get_saved_tio(void) { 18 | memset(&term_settings, 0, sizeof(term_settings)); 19 | return &term_settings; 20 | } 21 | 22 | void 23 | leave_raw_mode(int quiet) { 24 | ConExitRawMode(); 25 | } 26 | 27 | void 28 | enter_raw_mode(int quiet) { 29 | ConEnterRawMode(); 30 | } 31 | -------------------------------------------------------------------------------- /fixalgorithms: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # fixciphers - remove unsupported ciphers from man pages. 4 | # Usage: fixpaths /path/to/sed cipher1 [cipher2] outfile 5 | # 6 | # Author: Darren Tucker (dtucker at zip com.au). Placed in the public domain. 7 | 8 | die() { 9 | echo $* 10 | exit -1 11 | } 12 | 13 | SED=$1 14 | shift 15 | 16 | for c in $*; do 17 | subs="$subs -e /.Dq.$c.*$/d" 18 | subs="$subs -e s/$c,//g" 19 | done 20 | 21 | # now remove any entirely empty lines 22 | subs="$subs -e /^$/d" 23 | 24 | ${SED} $subs 25 | 26 | exit 0 27 | -------------------------------------------------------------------------------- /fixpaths: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # fixpaths - substitute makefile variables into text files 4 | # Usage: fixpaths -Dsomething=somethingelse ... 5 | 6 | die() { 7 | echo $* 8 | exit -1 9 | } 10 | 11 | test -n "`echo $1|grep -- -D`" || \ 12 | die $0: nothing to do - no substitutions listed! 13 | 14 | test -n "`echo $1|grep -- '-D[^=]\+=[^ ]\+'`" || \ 15 | die $0: error in command line arguments. 16 | 17 | test -n "`echo $*|grep -- ' [^-]'`" || \ 18 | die Usage: $0 '[-Dstring=replacement] [[infile] ...]' 19 | 20 | sed `echo $*|sed -e 's/-D\([^=]\+\)=\([^ ]*\)/-e s=\1=\2=g/g'` 21 | 22 | exit 0 23 | -------------------------------------------------------------------------------- /hash.c: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: hash.c,v 1.6 2019/11/29 00:11:21 djm Exp $ */ 2 | /* 3 | * Public domain. Author: Christian Weisgerber 4 | * API compatible reimplementation of function from nacl 5 | */ 6 | 7 | #include "includes.h" 8 | 9 | #include "crypto_api.h" 10 | 11 | #include 12 | 13 | #ifdef WITH_OPENSSL 14 | #include 15 | 16 | int 17 | crypto_hash_sha512(unsigned char *out, const unsigned char *in, 18 | unsigned long long inlen) 19 | { 20 | 21 | if (!EVP_Digest(in, inlen, out, NULL, EVP_sha512(), NULL)) 22 | return -1; 23 | return 0; 24 | } 25 | 26 | #else 27 | # ifdef HAVE_SHA2_H 28 | # include 29 | # endif 30 | 31 | int 32 | crypto_hash_sha512(unsigned char *out, const unsigned char *in, 33 | unsigned long long inlen) 34 | { 35 | 36 | SHA2_CTX ctx; 37 | 38 | SHA512Init(&ctx); 39 | SHA512Update(&ctx, in, inlen); 40 | SHA512Final(out, &ctx); 41 | return 0; 42 | } 43 | #endif /* WITH_OPENSSL */ 44 | -------------------------------------------------------------------------------- /mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | errstatus=0 8 | 9 | for file 10 | do 11 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 12 | shift 13 | 14 | pathcomp= 15 | for d 16 | do 17 | pathcomp="$pathcomp$d" 18 | case "$pathcomp" in 19 | -* ) pathcomp=./$pathcomp ;; 20 | esac 21 | 22 | if test ! -d "$pathcomp"; then 23 | echo "mkdir $pathcomp" 24 | 25 | mkdir "$pathcomp" || lasterr=$? 26 | 27 | if test ! -d "$pathcomp"; then 28 | errstatus=$lasterr 29 | fi 30 | fi 31 | 32 | pathcomp="$pathcomp/" 33 | done 34 | done 35 | 36 | exit $errstatus 37 | 38 | # mkinstalldirs ends here 39 | -------------------------------------------------------------------------------- /openbsd-compat/bsd-getpagesize.c: -------------------------------------------------------------------------------- 1 | /* Placed in the public domain */ 2 | 3 | #include "includes.h" 4 | 5 | #ifndef HAVE_GETPAGESIZE 6 | 7 | #include 8 | #include 9 | 10 | int 11 | getpagesize(void) 12 | { 13 | #if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE) 14 | long r = sysconf(_SC_PAGESIZE); 15 | if (r > 0 && r < INT_MAX) 16 | return (int)r; 17 | #endif 18 | /* 19 | * This is at the lower end of common values and appropriate for 20 | * our current use of getpagesize() in recallocarray(). 21 | */ 22 | return 4096; 23 | } 24 | 25 | #endif /* HAVE_GETPAGESIZE */ 26 | -------------------------------------------------------------------------------- /openbsd-compat/bsd-setres_id.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012 Darren Tucker (dtucker at zip com au). 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | #ifndef HAVE_SETRESGID 18 | int setresgid(gid_t, gid_t, gid_t); 19 | #endif 20 | #ifndef HAVE_SETRESUID 21 | int setresuid(uid_t, uid_t, uid_t); 22 | #endif 23 | -------------------------------------------------------------------------------- /openbsd-compat/bsd-signal.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1999-2004 Damien Miller 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | #include "includes.h" 18 | 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | #include "openbsd-compat/bsd-signal.h" 25 | 26 | #if !defined(HAVE_STRSIGNAL) 27 | char *strsignal(int sig) 28 | { 29 | static char buf[16]; 30 | 31 | (void)snprintf(buf, sizeof(buf), "%d", sig); 32 | return buf; 33 | } 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /openbsd-compat/bsd-signal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1999-2004 Damien Miller 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | #ifndef _BSD_SIGNAL_H 18 | #define _BSD_SIGNAL_H 19 | 20 | #include "includes.h" 21 | 22 | #include 23 | 24 | #ifndef _NSIG 25 | # ifdef NSIG 26 | # define _NSIG NSIG 27 | # else 28 | # define _NSIG 128 29 | # endif 30 | #endif 31 | 32 | #if !defined(HAVE_STRSIGNAL) 33 | char *strsignal(int); 34 | #endif 35 | 36 | #endif /* _BSD_SIGNAL_H */ 37 | -------------------------------------------------------------------------------- /openbsd-compat/charclass.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Public domain, 2008, Todd C. Miller 3 | * 4 | * $OpenBSD: charclass.h,v 1.1 2008/10/01 23:04:13 millert Exp $ 5 | */ 6 | 7 | /* OPENBSD ORIGINAL: lib/libc/gen/charclass.h */ 8 | 9 | /* 10 | * POSIX character class support for fnmatch() and glob(). 11 | */ 12 | static struct cclass { 13 | const char *name; 14 | int (*isctype)(int); 15 | } cclasses[] = { 16 | { "alnum", isalnum }, 17 | { "alpha", isalpha }, 18 | { "blank", isblank }, 19 | { "cntrl", iscntrl }, 20 | { "digit", isdigit }, 21 | { "graph", isgraph }, 22 | { "lower", islower }, 23 | { "print", isprint }, 24 | { "punct", ispunct }, 25 | { "space", isspace }, 26 | { "upper", isupper }, 27 | { "xdigit", isxdigit }, 28 | { NULL, NULL } 29 | }; 30 | 31 | #define NCCLASSES (sizeof(cclasses) / sizeof(cclasses[0]) - 1) 32 | -------------------------------------------------------------------------------- /openbsd-compat/freezero.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008, 2010, 2011, 2016 Otto Moerbeek 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | #include "includes.h" 18 | 19 | #include 20 | #include 21 | 22 | #ifndef HAVE_FREEZERO 23 | 24 | void 25 | freezero(void *ptr, size_t sz) 26 | { 27 | if (ptr == NULL) 28 | return; 29 | explicit_bzero(ptr, sz); 30 | free(ptr); 31 | } 32 | 33 | #endif /* HAVE_FREEZERO */ 34 | 35 | -------------------------------------------------------------------------------- /openbsd-compat/kludge-fd_set.c: -------------------------------------------------------------------------------- 1 | /* Placed in the public domain. */ 2 | 3 | /* 4 | * _FORTIFY_SOURCE includes a misguided check for FD_SET(n)/FD_ISSET(b) 5 | * where n > FD_SETSIZE. This breaks OpenSSH and other programs that 6 | * explicitly allocate fd_sets. To avoid this, we wrap FD_SET in a 7 | * function compiled without _FORTIFY_SOURCE. 8 | */ 9 | 10 | #include "config.h" 11 | 12 | #if defined(HAVE_FEATURES_H) && defined(_FORTIFY_SOURCE) 13 | # include 14 | # if defined(__GNU_LIBRARY__) && defined(__GLIBC_PREREQ) 15 | # if __GLIBC_PREREQ(2, 15) && (_FORTIFY_SOURCE > 0) 16 | # undef _FORTIFY_SOURCE 17 | # undef __USE_FORTIFY_LEVEL 18 | # include 19 | void kludge_FD_SET(int n, fd_set *set) { 20 | FD_SET(n, set); 21 | } 22 | int kludge_FD_ISSET(int n, fd_set *set) { 23 | return FD_ISSET(n, set); 24 | } 25 | # endif /* __GLIBC_PREREQ(2, 15) && (_FORTIFY_SOURCE > 0) */ 26 | # endif /* __GNU_LIBRARY__ && __GLIBC_PREREQ */ 27 | #endif /* HAVE_FEATURES_H && _FORTIFY_SOURCE */ 28 | 29 | -------------------------------------------------------------------------------- /openbsd-compat/regress/Makefile.in: -------------------------------------------------------------------------------- 1 | sysconfdir=@sysconfdir@ 2 | piddir=@piddir@ 3 | srcdir=@srcdir@ 4 | top_srcdir=@top_srcdir@ 5 | 6 | VPATH=@srcdir@ 7 | CC=@CC@ 8 | LD=@LD@ 9 | CFLAGS=@CFLAGS@ 10 | CPPFLAGS=-I. -I.. -I../.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../.. @CPPFLAGS@ @DEFS@ 11 | EXEEXT=@EXEEXT@ 12 | LIBCOMPAT=../libopenbsd-compat.a 13 | LIBSSH=../../libssh.a 14 | LIBS=@LIBS@ @CHANNELLIBS@ 15 | LDFLAGS=@LDFLAGS@ $(LIBCOMPAT) 16 | 17 | TESTPROGS=closefromtest$(EXEEXT) snprintftest$(EXEEXT) strduptest$(EXEEXT) \ 18 | strtonumtest$(EXEEXT) opensslvertest$(EXEEXT) utimensattest$(EXEEXT) 19 | 20 | all: t-exec ${OTHERTESTS} 21 | 22 | .c: $(LIBCOMPAT) $(LIBSSH) 23 | $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $< $(LIBCOMPAT) $(LIBSSH) $(LIBS) 24 | 25 | t-exec: $(TESTPROGS) 26 | @echo running compat regress tests 27 | @for TEST in ""$?; do \ 28 | echo "run test $${TEST}" ... 1>&2; \ 29 | ./$${TEST}$(EXEEXT) || exit $$? ; \ 30 | done 31 | @echo finished compat regress tests 32 | 33 | clean: 34 | rm -f *.o *.a core $(TESTPROGS) valid.out 35 | 36 | distclean: clean 37 | rm -f Makefile *~ 38 | -------------------------------------------------------------------------------- /pal_doexec.h: -------------------------------------------------------------------------------- 1 | #ifndef _PAL_DOEXEC_H 2 | #define _PAL_DOEXEC_H 3 | 4 | #include "session.h" 5 | 6 | int do_exec_pty(struct ssh *, Session *, const char *); 7 | int do_exec_no_pty(struct ssh *, Session *, const char *); 8 | #endif /* _PAL_DOEXEC_H */ -------------------------------------------------------------------------------- /platform-misc.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Darren Tucker. All rights reserved. 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | #include "includes.h" 18 | 19 | #include "openbsd-compat/openbsd-compat.h" 20 | 21 | /* 22 | * return 1 if the specified uid is a uid that may own a system directory 23 | * otherwise 0. 24 | */ 25 | int 26 | platform_sys_dir_uid(uid_t uid) 27 | { 28 | if (uid == 0) 29 | return 1; 30 | #ifdef PLATFORM_SYS_DIR_UID 31 | if (uid == PLATFORM_SYS_DIR_UID) 32 | return 1; 33 | #endif 34 | return 0; 35 | } 36 | -------------------------------------------------------------------------------- /poly1305.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: poly1305.h,v 1.4 2014/05/02 03:27:54 djm Exp $ */ 2 | 3 | /* 4 | * Public Domain poly1305 from Andrew Moon 5 | * poly1305-donna-unrolled.c from https://github.com/floodyberry/poly1305-donna 6 | */ 7 | 8 | #ifndef POLY1305_H 9 | #define POLY1305_H 10 | 11 | #include 12 | 13 | #define POLY1305_KEYLEN 32 14 | #define POLY1305_TAGLEN 16 15 | 16 | void poly1305_auth(u_char out[POLY1305_TAGLEN], const u_char *m, size_t inlen, 17 | const u_char key[POLY1305_KEYLEN]) 18 | __attribute__((__bounded__(__minbytes__, 1, POLY1305_TAGLEN))) 19 | __attribute__((__bounded__(__buffer__, 2, 3))) 20 | __attribute__((__bounded__(__minbytes__, 4, POLY1305_KEYLEN))); 21 | 22 | #endif /* POLY1305_H */ 23 | -------------------------------------------------------------------------------- /regress/.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Declare files that will always have LF line endings on checkout. 5 | *.sh text eol=lf -------------------------------------------------------------------------------- /regress/agent-subprocess.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: agent-subprocess.sh,v 1.1 2020/06/19 05:07:09 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="agent subprocess" 5 | 6 | trace "ensure agent exits when run as subprocess" 7 | ${SSHAGENT} sh -c "echo \$SSH_AGENT_PID >$OBJ/pidfile; sleep 1" 8 | 9 | pid=`cat $OBJ/pidfile` 10 | 11 | # Currently ssh-agent polls every 10s so we need to wait at least that long. 12 | n=12 13 | while kill -0 $pid >/dev/null 2>&1 && test "$n" -gt "0"; do 14 | n=$(($n - 1)) 15 | sleep 1 16 | done 17 | 18 | if test "$n" -eq "0"; then 19 | fail "agent still running" 20 | fi 21 | 22 | rm -f $OBJ/pidfile 23 | -------------------------------------------------------------------------------- /regress/agent-timeout.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: agent-timeout.sh,v 1.6 2019/11/26 23:43:10 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="agent timeout test" 5 | if [ "$os" == "windows" ]; then 6 | echo "skipped (not supported on WINDOWS platform)" 7 | exit 0 8 | fi 9 | SSHAGENT_TIMEOUT=10 10 | 11 | trace "start agent" 12 | eval `${SSHAGENT} -s ${EXTRA_AGENT_ARGS}` > /dev/null 13 | r=$? 14 | if [ $r -ne 0 ]; then 15 | fail "could not start ssh-agent: exit code $r" 16 | else 17 | trace "add keys with timeout" 18 | keys=0 19 | for t in ${SSH_KEYTYPES}; do 20 | ${SSHADD} -kt ${SSHAGENT_TIMEOUT} $OBJ/$t > /dev/null 2>&1 21 | if [ $? -ne 0 ]; then 22 | fail "ssh-add did succeed exit code 0" 23 | fi 24 | keys=$((${keys} + 1)) 25 | done 26 | n=`${SSHADD} -l 2> /dev/null | wc -l` 27 | trace "agent has $n keys" 28 | if [ $n -ne $keys ]; then 29 | fail "ssh-add -l did not return $keys keys: $n" 30 | fi 31 | trace "sleeping 2*${SSHAGENT_TIMEOUT} seconds" 32 | sleep ${SSHAGENT_TIMEOUT} 33 | sleep ${SSHAGENT_TIMEOUT} 34 | ${SSHADD} -l 2> /dev/null | grep 'The agent has no identities.' >/dev/null 35 | if [ $? -ne 0 ]; then 36 | fail "ssh-add -l still returns keys after timeout" 37 | fi 38 | 39 | trace "kill agent" 40 | ${SSHAGENT} -k > /dev/null 41 | fi 42 | -------------------------------------------------------------------------------- /regress/authinfo.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: authinfo.sh,v 1.3 2018/04/10 00:13:27 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="authinfo" 5 | 6 | if [ "$os" == "windows" ]; then 7 | # Windows, ssh.exe -S option is not supported on windows 8 | echo "skipped, not applicable on windows OS" 9 | exit 0 10 | fi 11 | 12 | # Ensure the environment variable doesn't leak when ExposeAuthInfo=no. 13 | verbose "ExposeAuthInfo=no" 14 | env SSH_USER_AUTH=blah ${SSH} -F $OBJ/ssh_proxy x \ 15 | 'env | grep SSH_USER_AUTH >/dev/null' && fail "SSH_USER_AUTH present" 16 | 17 | verbose "ExposeAuthInfo=yes" 18 | echo ExposeAuthInfo=yes >> $OBJ/sshd_proxy 19 | ${SSH} -F $OBJ/ssh_proxy x \ 20 | 'grep ^publickey "$SSH_USER_AUTH" /dev/null >/dev/null' || 21 | fail "ssh with ExposeAuthInfo failed" 22 | 23 | # XXX test multiple auth and key contents 24 | -------------------------------------------------------------------------------- /regress/broken-pipe.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: broken-pipe.sh,v 1.6 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="broken pipe test" 5 | 6 | for i in 1 2 3 4; do 7 | ${SSH} -F $OBJ/ssh_config_config nexthost echo $i 2> /dev/null | true 8 | r=$? 9 | if [ $r -ne 0 ]; then 10 | fail "broken pipe returns $r" 11 | fi 12 | done 13 | -------------------------------------------------------------------------------- /regress/brokenkeys.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: brokenkeys.sh,v 1.2 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="broken keys" 5 | 6 | KEYS="$OBJ/authorized_keys_${USER}" 7 | 8 | start_sshd 9 | 10 | mv ${KEYS} ${KEYS}.bak 11 | 12 | # Truncated key 13 | echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEABTM= bad key" > $KEYS 14 | cat ${KEYS}.bak >> ${KEYS} 15 | cat $OBJ/$t.pub >> $OBJ/authorized_keys_$USER 16 | 17 | ${SSH} -F $OBJ/ssh_config somehost true 18 | if [ $? -ne 0 ]; then 19 | fail "ssh connect with failed" 20 | fi 21 | 22 | mv ${KEYS}.bak ${KEYS} 23 | 24 | -------------------------------------------------------------------------------- /regress/cipher-speed.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: cipher-speed.sh,v 1.14 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="cipher speed" 5 | 6 | # Enable all supported ciphers and macs. 7 | ciphers=`${SSH} -Q Ciphers | tr '\n' , | sed 's/,$//'` 8 | macs=`${SSH} -Q MACs | tr '\n' , | sed 's/,$//'` 9 | cat >>$OBJ/sshd_proxy <&1 | getbytes 32 | 33 | if [ $? -ne 0 ]; then 34 | fail "ssh failed with mac $m cipher $c" 35 | fi 36 | done 37 | # No point trying all MACs for AEAD ciphers since they are ignored. 38 | if ${SSH} -Q cipher-auth | grep "^${c}\$" >/dev/null 2>&1 ; then 39 | break 40 | fi 41 | n=`expr $n + 1` 42 | done; done 43 | -------------------------------------------------------------------------------- /regress/conch-ciphers.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: conch-ciphers.sh,v 1.7 2023/10/26 12:44:07 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="conch ciphers" 5 | 6 | if test "x$REGRESS_INTEROP_CONCH" != "xyes" ; then 7 | skip "conch interop tests not enabled" 8 | fi 9 | 10 | if ! [ -t 0 ]; then 11 | skip "conch interop tests requires a controlling terminal" 12 | fi 13 | 14 | start_sshd 15 | 16 | for c in aes256-ctr aes256-cbc aes192-ctr aes192-cbc aes128-ctr aes128-cbc \ 17 | cast128-cbc blowfish 3des-cbc ; do 18 | verbose "$tid: cipher $c" 19 | rm -f ${COPY} 20 | # XXX the 2nd "cat" seems to be needed because of buggy FD handling 21 | # in conch 22 | ${CONCH} --identity $OBJ/ssh-ed25519 --port $PORT --user $USER -e none \ 23 | --known-hosts $OBJ/known_hosts --notty --noagent --nox11 -n \ 24 | 127.0.0.1 "cat ${DATA}" 2>/dev/null | cat > ${COPY} 25 | if [ $? -ne 0 ]; then 26 | fail "ssh cat $DATA failed" 27 | fi 28 | cmp ${DATA} ${COPY} || fail "corrupted copy" 29 | done 30 | rm -f ${COPY} 31 | 32 | -------------------------------------------------------------------------------- /regress/connect-privsep.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: connect-privsep.sh,v 1.9 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="proxy connect with privsep" 5 | 6 | cp $OBJ/sshd_proxy $OBJ/sshd_proxy.orig 7 | echo 'UsePrivilegeSeparation yes' >> $OBJ/sshd_proxy 8 | 9 | ${SSH} -F $OBJ/ssh_proxy 999.999.999.999 true 10 | if [ $? -ne 0 ]; then 11 | fail "ssh privsep+proxyconnect failed" 12 | fi 13 | 14 | cp $OBJ/sshd_proxy.orig $OBJ/sshd_proxy 15 | echo 'UsePrivilegeSeparation sandbox' >> $OBJ/sshd_proxy 16 | 17 | ${SSH} -F $OBJ/ssh_proxy 999.999.999.999 true 18 | if [ $? -ne 0 ]; then 19 | fail "ssh privsep/sandbox+proxyconnect failed" 20 | fi 21 | 22 | # Because sandbox is sensitive to changes in libc, especially malloc, retest 23 | # with every malloc.conf option (and none). 24 | if [ -z "$TEST_MALLOC_OPTIONS" ]; then 25 | mopts="C F G J R S U X < >" 26 | else 27 | mopts=`echo $TEST_MALLOC_OPTIONS | sed 's/./& /g'` 28 | fi 29 | for m in '' $mopts ; do 30 | env MALLOC_OPTIONS="$m" ${SSH} -F $OBJ/ssh_proxy 999.999.999.999 true 31 | if [ $? -ne 0 ]; then 32 | fail "ssh privsep/sandbox+proxyconnect mopt '$m' failed" 33 | fi 34 | done 35 | -------------------------------------------------------------------------------- /regress/connect-uri.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: connect-uri.sh,v 1.1 2017/10/24 19:33:32 millert Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="uri connect" 5 | 6 | # Remove Port and User from ssh_config, we want to rely on the URI 7 | cp $OBJ/ssh_config $OBJ/ssh_config.orig 8 | egrep -v '^ +(Port|User) +.*$' $OBJ/ssh_config.orig > $OBJ/ssh_config 9 | 10 | start_sshd 11 | 12 | verbose "$tid: no trailing slash" 13 | ${SSH} -F $OBJ/ssh_config "ssh://${USER}@somehost:${PORT}" true 14 | if [ $? -ne 0 ]; then 15 | fail "ssh connection failed" 16 | fi 17 | 18 | verbose "$tid: trailing slash" 19 | ${SSH} -F $OBJ/ssh_config "ssh://${USER}@somehost:${PORT}/" true 20 | if [ $? -ne 0 ]; then 21 | fail "ssh connection failed" 22 | fi 23 | 24 | verbose "$tid: with path name" 25 | ${SSH} -F $OBJ/ssh_config "ssh://${USER}@somehost:${PORT}/${DATA}" true \ 26 | > /dev/null 2>&1 27 | if [ $? -eq 0 ]; then 28 | fail "ssh connection succeeded, expected failure" 29 | fi 30 | -------------------------------------------------------------------------------- /regress/connect.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: connect.sh,v 1.8 2020/01/25 02:57:53 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="simple connect" 5 | 6 | start_sshd 7 | 8 | trace "direct connect" 9 | ${SSH} -F $OBJ/ssh_config somehost true 10 | if [ $? -ne 0 ]; then 11 | fail "ssh direct connect failed" 12 | fi 13 | 14 | if [ "$os" != "windows" ]; then 15 | trace "proxy connect" 16 | ${SSH} -F $OBJ/ssh_config -o "proxycommand $NC %h %p" somehost true 17 | if [ $? -ne 0 ]; then 18 | fail "ssh proxycommand connect failed" 19 | fi 20 | fi -------------------------------------------------------------------------------- /regress/dropbear-ciphers.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: dropbear-ciphers.sh,v 1.3 2024/06/20 08:23:18 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="dropbear ciphers" 5 | 6 | if test "x$REGRESS_INTEROP_DROPBEAR" != "xyes" ; then 7 | skip "dropbear interop tests not enabled" 8 | fi 9 | 10 | # Enable all support algorithms 11 | algs=`$SSH -Q key-sig | tr '\n' ,` 12 | cat >>$OBJ/sshd_proxy <&1 | awk '/ ciphers: /{print $4}' | tr ',' ' '` 18 | macs=`$DBCLIENT -m help hst 2>&1 | awk '/ MACs: /{print $4}' | tr ',' ' '` 19 | if [ -z "$macs" ] || [ -z "$ciphers" ]; then 20 | skip "dbclient query ciphers '$ciphers' or macs '$macs' failed" 21 | fi 22 | keytype=`(cd $OBJ/.dropbear && ls id_*)` 23 | 24 | for c in $ciphers ; do 25 | for m in $macs; do 26 | for kt in $keytype; do 27 | verbose "$tid: cipher $c mac $m kt $kt" 28 | rm -f ${COPY} 29 | env HOME=$OBJ dbclient -y -i $OBJ/.dropbear/$kt 2>$OBJ/dbclient.log \ 30 | -c $c -m $m -J "$OBJ/ssh_proxy.sh" somehost cat ${DATA} > ${COPY} 31 | if [ $? -ne 0 ]; then 32 | fail "ssh cat $DATA failed" 33 | fi 34 | cmp ${DATA} ${COPY} || fail "corrupted copy" 35 | done 36 | done 37 | done 38 | rm -f ${COPY} 39 | -------------------------------------------------------------------------------- /regress/dropbear-kex.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: dropbear-kex.sh,v 1.3 2024/06/19 10:10:46 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="dropbear kex" 5 | 6 | if test "x$REGRESS_INTEROP_DROPBEAR" != "xyes" ; then 7 | skip "dropbear interop tests not enabled" 8 | fi 9 | 10 | cp $OBJ/sshd_proxy $OBJ/sshd_proxy.bak 11 | 12 | kex="curve25519-sha256 curve25519-sha256@libssh.org" 13 | if $SSH -Q kex | grep 'diffie-hellman-group14-sha1'; then 14 | kex="$kex diffie-hellman-group14-sha256 diffie-hellman-group14-sha1" 15 | fi 16 | 17 | for k in $kex; do 18 | verbose "$tid: kex $k" 19 | rm -f ${COPY} 20 | # dbclient doesn't have switch for kex, so force in server 21 | (cat $OBJ/sshd_proxy.bak; echo "KexAlgorithms $k") >$OBJ/sshd_proxy 22 | env HOME=$OBJ dbclient -y -i $OBJ/.dropbear/id_ed25519 2>$OBJ/dbclient.log \ 23 | -J "$OBJ/ssh_proxy.sh" somehost cat ${DATA} > ${COPY} 24 | if [ $? -ne 0 ]; then 25 | fail "ssh cat $DATA failed" 26 | fi 27 | cmp ${DATA} ${COPY} || fail "corrupted copy" 28 | done 29 | rm -f ${COPY} 30 | -------------------------------------------------------------------------------- /regress/dsa_ssh2.prv: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ---- 2 | Subject: ssh-keygen test 3 | Comment: "1024-bit dsa, Tue Jan 08 2002 22:00:23 +0100" 4 | P2/56wAAAgIAAAAmZGwtbW9kcHtzaWdue2RzYS1uaXN0LXNoYTF9LGRoe3BsYWlufX0AAA 5 | AEbm9uZQAAAcQAAAHAAAAAAAAABACwUfm3AxZTut3icBmwCcD48nY64HzuELlQ+vEqjIcR 6 | Lo49es/DQTeLNQ+kdKRCfouosGNv0WqxRtF0tUsWdXxS37oHGa4QPugBdHRd7YlZGZv8kg 7 | x7FsoepY7v7E683/97dv2zxL3AGagTEzWr7fl0yPexAaZoDvtQrrjX44BLmwAABACWQkvv 8 | MxnD8eFkS1konFfMJ1CkuRfTN34CBZ6dY7VTSGemy4QwtFdMKmoufD0eKgy3p5WOeWCYKt 9 | F4FhjHKZk/aaxFjjIbtkrnlvXg64QI11dSZyBN6/ViQkHPSkUDF+A6AAEhrNbQbAFSvao1 10 | kTvNtPCtL0AkUIduEMzGQfLCTAAAAKDeC043YVo9Zo0zAEeIA4uZh4LBCQAAA/9aj7Y5ik 11 | ehygJ4qTDSlVypsPuV+n59tMS0e2pfrSG87yf5r94AKBmJeho5OO6wYaXCxsVB7AFbSUD6 12 | 75AK8mHF4v1/+7SWKk5f8xlMCMSPZ9K0+j/W1d/q2qkhnnDZolOHDomLA+U00i5ya/jnTV 13 | zyDPWLFpWK8u3xGBPAYX324gAAAKDHFvooRnaXdZbeWGTTqmgHB1GU9A== 14 | ---- END SSH2 ENCRYPTED PRIVATE KEY ---- 15 | -------------------------------------------------------------------------------- /regress/dsa_ssh2.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Subject: ssh-keygen test 3 | Comment: "1024-bit dsa, Tue Jan 08 2002 22:00:23 +0100" 4 | AAAAB3NzaC1kc3MAAACBALBR+bcDFlO63eJwGbAJwPjydjrgfO4QuVD68SqMhxEujj16z8 5 | NBN4s1D6R0pEJ+i6iwY2/RarFG0XS1SxZ1fFLfugcZrhA+6AF0dF3tiVkZm/ySDHsWyh6l 6 | ju/sTrzf/3t2/bPEvcAZqBMTNavt+XTI97EBpmgO+1CuuNfjgEubAAAAFQDeC043YVo9Zo 7 | 0zAEeIA4uZh4LBCQAAAIEAlkJL7zMZw/HhZEtZKJxXzCdQpLkX0zd+AgWenWO1U0hnpsuE 8 | MLRXTCpqLnw9HioMt6eVjnlgmCrReBYYxymZP2msRY4yG7ZK55b14OuECNdXUmcgTev1Yk 9 | JBz0pFAxfgOgABIazW0GwBUr2qNZE7zbTwrS9AJFCHbhDMxkHywkwAAACAWo+2OYpHocoC 10 | eKkw0pVcqbD7lfp+fbTEtHtqX60hvO8n+a/eACgZiXoaOTjusGGlwsbFQewBW0lA+u+QCv 11 | JhxeL9f/u0lipOX/MZTAjEj2fStPo/1tXf6tqpIZ5w2aJThw6JiwPlNNIucmv4501c8gz1 12 | ixaVivLt8RgTwGF99uI= 13 | ---- END SSH2 PUBLIC KEY ---- 14 | -------------------------------------------------------------------------------- /regress/ed25519_openssh.prv: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACDE8/0FM7Yw6xc53QpiZUQAh/LK2mEAwNDNYdSR6GIGIwAAAKC+Cfdzvgn3 4 | cwAAAAtzc2gtZWQyNTUxOQAAACDE8/0FM7Yw6xc53QpiZUQAh/LK2mEAwNDNYdSR6GIGIw 5 | AAAEBm+60DgH0WMW7Z5oyvu1dxo7MaXe5RRMWTMJCfLkHexMTz/QUztjDrFzndCmJlRACH 6 | 8sraYQDA0M1h1JHoYgYjAAAAGWR0dWNrZXJAcXVvbGwuZHR1Y2tlci5uZXQBAgME 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /regress/ed25519_openssh.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMTz/QUztjDrFzndCmJlRACH8sraYQDA0M1h1JHoYgYj 2 | -------------------------------------------------------------------------------- /regress/exit-status-signal.sh: -------------------------------------------------------------------------------- 1 | # This test performs validation that ssh client is not successive on being terminated 2 | 3 | tid="exit status on signal" 4 | 5 | # spawn client in background 6 | rm -f $OBJ/remote_pid 7 | ${SSH} -F $OBJ/ssh_proxy somehost 'echo $$ >'$OBJ'/remote_pid; sleep 444' & 8 | ssh_pid=$! 9 | 10 | # wait for it to start 11 | n=20 12 | while [ ! -f $OBJ/remote_pid ] && [ $n -gt 0 ]; do 13 | n=$(($n - 1)) 14 | echo "sleep for 1 sec" 15 | sleep 1 16 | done 17 | 18 | kill $ssh_pid 19 | wait $ssh_pid 20 | exit_code=$? 21 | 22 | if [ $exit_code -eq 0 ]; then 23 | fail "ssh client should fail on signal" 24 | fi 25 | 26 | if [ "$os" == "windows" ]; then 27 | powershell.exe /c "stop-process -name sleep" >/dev/null 2>&1 28 | fi -------------------------------------------------------------------------------- /regress/exit-status.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: exit-status.sh,v 1.8 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="remote exit status" 5 | 6 | for s in 0 1 4 5 44; do 7 | trace "status $s" 8 | verbose "test $tid: status $s" 9 | ${SSH} -F $OBJ/ssh_proxy otherhost exit $s 10 | r=$? 11 | if [ $r -ne $s ]; then 12 | fail "exit code mismatch for: $r != $s" 13 | fi 14 | 15 | # same with early close of stdout/err 16 | ${SSH} -F $OBJ/ssh_proxy -n otherhost exec \ 17 | sh -c \'"sleep 2; exec > /dev/null 2>&1; sleep 3; exit $s"\' 18 | r=$? 19 | if [ $r -ne $s ]; then 20 | fail "exit code (with sleep) mismatch for: $r != $s" 21 | fi 22 | done 23 | -------------------------------------------------------------------------------- /regress/host-expand.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: host-expand.sh,v 1.5 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="expand %h and %n" 5 | 6 | echo 'PermitLocalCommand yes' >> $OBJ/ssh_proxy 7 | if [ "$os" == "windows" ]; then 8 | # Use bash shell for local command execution as the default shell in windows is cmd.exe 9 | printf 'LocalCommand ' >> $OBJ/ssh_proxy 10 | printf $TEST_SHELL_PATH >> $OBJ/ssh_proxy 11 | printf ' -c "printf \\"%%%%s\\n\\" \\"%%n\\" \\"%%h\\""\n' >> $OBJ/ssh_proxy 12 | else 13 | printf 'LocalCommand printf "%%%%s\\n" "%%n" "%%h"\n' >> $OBJ/ssh_proxy 14 | fi 15 | 16 | cat >$OBJ/expect <$OBJ/actual 22 | diff $OBJ/expect $OBJ/actual || fail "$tid" 23 | 24 | -------------------------------------------------------------------------------- /regress/kextype.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: kextype.sh,v 1.6 2015/03/24 20:19:15 markus Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="login with different key exchange algorithms" 5 | 6 | TIME=/usr/bin/time 7 | cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak 8 | cp $OBJ/ssh_proxy $OBJ/ssh_proxy_bak 9 | 10 | # Make server accept all key exchanges. 11 | 12 | if [ "$os" == "windows" ]; then 13 | # Remove CR (carriage return) 14 | ALLKEX=`${SSH} -Q kex | sed 's/\r$//'` 15 | else 16 | ALLKEX=`${SSH} -Q kex` 17 | fi 18 | KEXOPT=`echo $ALLKEX | tr ' ' ,` 19 | echo "KexAlgorithms=$KEXOPT" >> $OBJ/sshd_proxy 20 | 21 | tries="1 2 3 4" 22 | for k in `${SSH} -Q kex`; do 23 | if [ "$os" == "windows" ]; then 24 | k=${k/$'\r'/} # Remove CR (carriage return) 25 | fi 26 | verbose "kex $k" 27 | for i in $tries; do 28 | ${SSH} -F $OBJ/ssh_proxy -o KexAlgorithms=$k x true 29 | if [ $? -ne 0 ]; then 30 | fail "ssh kex $k" 31 | fi 32 | done 33 | done 34 | 35 | -------------------------------------------------------------------------------- /regress/keygen-change.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: keygen-change.sh,v 1.9 2019/12/16 02:39:05 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="change passphrase for key" 5 | 6 | S1="secret1" 7 | S2="2secret" 8 | 9 | for t in $SSH_KEYTYPES; do 10 | trace "generating $t key" 11 | rm -f $OBJ/$t-key 12 | ${SSHKEYGEN} -q -N ${S1} -t $t -f $OBJ/$t-key 13 | if [ $? -eq 0 ]; then 14 | ${SSHKEYGEN} -p -P ${S1} -N ${S2} -f $OBJ/$t-key > /dev/null 15 | if [ $? -ne 0 ]; then 16 | fail "ssh-keygen -p failed for $t-key" 17 | fi 18 | else 19 | fail "ssh-keygen for $t-key failed" 20 | fi 21 | rm -f $OBJ/$t-key $OBJ/$t-key.pub 22 | done 23 | -------------------------------------------------------------------------------- /regress/keygen-moduli.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: keygen-moduli.sh,v 1.4 2020/01/02 13:25:38 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="keygen moduli" 5 | 6 | dhgex=0 7 | for kex in `${SSH} -Q kex`; do 8 | case $kex in 9 | diffie-hellman-group*) dhgex=1 ;; 10 | esac 11 | done 12 | 13 | # Try "start at the beginning and stop after 1", "skip 1 then stop after 1" 14 | # and "skip 2 and run to the end with checkpointing". Since our test data 15 | # file has 3 lines, these should always result in 1 line of output. 16 | if [ "x$dhgex" = "x1" ]; then 17 | for i in "-O lines=1" "-O start-line=1 -O lines=1" "-O start-line=2 -O checkpoint=$OBJ/moduli.ckpt"; do 18 | trace "keygen $i" 19 | rm -f $OBJ/moduli.out $OBJ/moduli.ckpt 20 | ${SSHKEYGEN} -M screen -f ${SRC}/moduli.in $i $OBJ/moduli.out 2>/dev/null || \ 21 | fail "keygen screen failed $i" 22 | lines=`wc -l <$OBJ/moduli.out` 23 | test "$lines" -eq "1" || fail "expected 1 line, got $lines" 24 | done 25 | fi 26 | 27 | rm -f $OBJ/moduli.out $OBJ/moduli.ckpt 28 | -------------------------------------------------------------------------------- /regress/keyscan.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: keyscan.sh,v 1.13 2020/01/22 07:31:27 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="keyscan" 5 | 6 | for i in $SSH_KEYTYPES; do 7 | if [ -z "$algs" ]; then 8 | algs="$i" 9 | else 10 | algs="$algs,$i" 11 | fi 12 | done 13 | echo "HostKeyAlgorithms $algs" >> $OBJ/sshd_config 14 | 15 | start_sshd 16 | 17 | for t in $SSH_KEYTYPES; do 18 | trace "keyscan type $t" 19 | ${SSHKEYSCAN} -t $t -T 15 -p $PORT 127.0.0.1 127.0.0.1 127.0.0.1 \ 20 | > /dev/null 2>&1 21 | r=$? 22 | if [ $r -ne 0 ]; then 23 | fail "ssh-keyscan -t $t failed with: $r" 24 | fi 25 | done 26 | -------------------------------------------------------------------------------- /regress/localcommand.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: localcommand.sh,v 1.4 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="localcommand" 5 | 6 | echo 'PermitLocalCommand yes' >> $OBJ/ssh_proxy 7 | echo 'LocalCommand echo foo' >> $OBJ/ssh_proxy 8 | 9 | verbose "test $tid: proto $p localcommand" 10 | a=`${SSH} -F $OBJ/ssh_proxy somehost true` 11 | 12 | if [ "$os" == "windows" ]; then 13 | a=`echo $a | tr -d '\r\n'` # Remove CR (carriage return) 14 | fi 15 | 16 | if [ "$a" != "foo" ] ; then 17 | fail "$tid proto $p" 18 | fi 19 | -------------------------------------------------------------------------------- /regress/login-timeout.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: login-timeout.sh,v 1.10 2021/09/30 05:20:08 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="connect after login grace timeout" 5 | 6 | trace "test login grace time" 7 | cp $OBJ/sshd_config $OBJ/sshd_config.orig 8 | grep -vi LoginGraceTime $OBJ/sshd_config.orig > $OBJ/sshd_config 9 | echo "LoginGraceTime 10s" >> $OBJ/sshd_config 10 | echo "MaxStartups 1" >> $OBJ/sshd_config 11 | start_sshd 12 | 13 | (echo SSH-2.0-fake; sleep 60) | telnet 127.0.0.1 ${PORT} >/dev/null 2>&1 & 14 | sleep 15 15 | ${SSH} -F $OBJ/ssh_config somehost true 16 | if [ $? -ne 0 ]; then 17 | fail "ssh connect after login grace timeout failed" 18 | fi 19 | -------------------------------------------------------------------------------- /regress/misc/Makefile: -------------------------------------------------------------------------------- 1 | SUBDIR= sk-dummy 2 | 3 | .include 4 | -------------------------------------------------------------------------------- /regress/misc/fuzz-harness/README: -------------------------------------------------------------------------------- 1 | This directory contains fuzzing harnesses for use with clang's libfuzzer. 2 | -------------------------------------------------------------------------------- /regress/misc/fuzz-harness/agent_fuzz.cc: -------------------------------------------------------------------------------- 1 | // cc_fuzz_target test for ssh-agent. 2 | extern "C" { 3 | 4 | #include 5 | #include 6 | 7 | extern void test_one(const uint8_t* s, size_t slen); 8 | 9 | int LLVMFuzzerTestOneInput(const uint8_t* s, size_t slen) 10 | { 11 | test_one(s, slen); 12 | return 0; 13 | } 14 | 15 | } // extern 16 | -------------------------------------------------------------------------------- /regress/misc/fuzz-harness/authopt_fuzz.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | extern "C" { 8 | 9 | #include "auth-options.h" 10 | 11 | int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) 12 | { 13 | char *cp = (char *)malloc(size + 1); 14 | struct sshauthopt *opts = NULL, *merge = NULL, *add = sshauthopt_new(); 15 | 16 | if (cp == NULL || add == NULL) 17 | goto out; 18 | memcpy(cp, data, size); 19 | cp[size] = '\0'; 20 | if ((opts = sshauthopt_parse(cp, NULL)) == NULL) 21 | goto out; 22 | if ((merge = sshauthopt_merge(opts, add, NULL)) == NULL) 23 | goto out; 24 | 25 | out: 26 | free(cp); 27 | sshauthopt_free(add); 28 | sshauthopt_free(opts); 29 | sshauthopt_free(merge); 30 | return 0; 31 | } 32 | 33 | } // extern "C" 34 | -------------------------------------------------------------------------------- /regress/misc/fuzz-harness/privkey_fuzz.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | extern "C" { 6 | 7 | #include "sshkey.h" 8 | #include "sshbuf.h" 9 | 10 | int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) 11 | { 12 | struct sshkey *k = NULL; 13 | struct sshbuf *b = sshbuf_from(data, size); 14 | int r = sshkey_private_deserialize(b, &k); 15 | if (r == 0) sshkey_free(k); 16 | sshbuf_free(b); 17 | return 0; 18 | } 19 | 20 | } // extern 21 | 22 | -------------------------------------------------------------------------------- /regress/misc/fuzz-harness/pubkey_fuzz.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | extern "C" { 6 | 7 | #include "sshkey.h" 8 | 9 | int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) 10 | { 11 | struct sshkey *k = NULL; 12 | int r = sshkey_from_blob(data, size, &k); 13 | if (r == 0) sshkey_free(k); 14 | return 0; 15 | } 16 | 17 | } // extern 18 | 19 | -------------------------------------------------------------------------------- /regress/misc/fuzz-harness/sshsig_fuzz.cc: -------------------------------------------------------------------------------- 1 | // cc_fuzz_target test for sshsig verification. 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | extern "C" { 10 | 11 | #include "includes.h" 12 | #include "sshkey.h" 13 | #include "ssherr.h" 14 | #include "sshbuf.h" 15 | #include "sshsig.h" 16 | #include "log.h" 17 | 18 | int LLVMFuzzerTestOneInput(const uint8_t* sig, size_t slen) 19 | { 20 | static const char *data = "If everyone started announcing his nose had " 21 | "run away, I don’t know how it would all end"; 22 | struct sshbuf *signature = sshbuf_from(sig, slen); 23 | struct sshbuf *message = sshbuf_from(data, strlen(data)); 24 | struct sshkey *k = NULL; 25 | struct sshkey_sig_details *details = NULL; 26 | extern char *__progname; 27 | 28 | log_init(__progname, SYSLOG_LEVEL_QUIET, SYSLOG_FACILITY_USER, 1); 29 | sshsig_verifyb(signature, message, "castle", &k, &details); 30 | sshkey_sig_details_free(details); 31 | sshkey_free(k); 32 | sshbuf_free(signature); 33 | sshbuf_free(message); 34 | return 0; 35 | } 36 | 37 | } // extern 38 | -------------------------------------------------------------------------------- /regress/misc/fuzz-harness/sshsigopt_fuzz.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | extern "C" { 8 | 9 | #include "sshsig.h" 10 | 11 | int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) 12 | { 13 | char *cp = (char *)malloc(size + 1); 14 | struct sshsigopt *opts = NULL; 15 | 16 | if (cp == NULL) 17 | goto out; 18 | memcpy(cp, data, size); 19 | cp[size] = '\0'; 20 | if ((opts = sshsigopt_parse(cp, "libfuzzer", 0, NULL)) == NULL) 21 | goto out; 22 | 23 | out: 24 | free(cp); 25 | sshsigopt_free(opts); 26 | return 0; 27 | } 28 | 29 | } // extern "C" 30 | -------------------------------------------------------------------------------- /regress/misc/fuzz-harness/testdata/README: -------------------------------------------------------------------------------- 1 | This is preparatory data for fuzzing testing including scripts and test keys, 2 | corresponding to ../fixed-keys that are used in the fuzz tests and consequent 3 | fuzzing seed corpora. They should not be changed unless the affected seed 4 | corpora are also regenerated. 5 | -------------------------------------------------------------------------------- /regress/misc/fuzz-harness/testdata/create-agent-corpus.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Exercise ssh-agent to generate fuzzing corpus 4 | 5 | # XXX assumes agent hacked up with sk-dummy.o and ssh-sk.o linked directly 6 | # and dumping of e->request for each message. 7 | 8 | set -xe 9 | SSH_AUTH_SOCK=$PWD/sock 10 | rm -f agent-[0-9]* $SSH_AUTH_SOCK 11 | export SSH_AUTH_SOCK 12 | ../../../../ssh-agent -D -a $SSH_AUTH_SOCK & 13 | sleep 1 14 | AGENT_PID=$! 15 | trap "kill $AGENT_PID" EXIT 16 | 17 | PRIV="id_dsa id_ecdsa id_ecdsa_sk id_ed25519 id_ed25519_sk id_rsa" 18 | 19 | # add keys 20 | ssh-add $PRIV 21 | 22 | # sign 23 | ssh-add -T *.pub 24 | 25 | # list 26 | ssh-add -l 27 | 28 | # remove individually 29 | ssh-add -d $PRIV 30 | 31 | # re-add with constraints 32 | ssh-add -c -t 3h $PRIV 33 | 34 | # delete all 35 | ssh-add -D 36 | 37 | # attempt to add a PKCS#11 token 38 | ssh-add -s /fake || : 39 | 40 | # attempt to delete PKCS#11 41 | ssh-add -e /fake || : 42 | 43 | ssh-add -L 44 | 45 | -------------------------------------------------------------------------------- /regress/misc/sk-dummy/fatal.c: -------------------------------------------------------------------------------- 1 | /* public domain */ 2 | 3 | #include "includes.h" 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #include "log.h" 11 | 12 | void 13 | sshfatal(const char *file, const char *func, int line, int showfunc, 14 | LogLevel level, const char *suffix, const char *fmt, ...) 15 | { 16 | va_list ap; 17 | 18 | if (showfunc) 19 | fprintf(stderr, "%s: ", func); 20 | va_start(ap, fmt); 21 | vfprintf(stderr, fmt, ap); 22 | va_end(ap); 23 | if (suffix != NULL) 24 | fprintf(stderr, ": %s", suffix); 25 | fputc('\n', stderr); 26 | _exit(1); 27 | } 28 | -------------------------------------------------------------------------------- /regress/penalty-expire.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD 2 | # Placed in the Public Domain. 3 | 4 | tid="penalties" 5 | 6 | grep -vi PerSourcePenalties $OBJ/sshd_config > $OBJ/sshd_config.bak 7 | cp $OBJ/authorized_keys_${USER} $OBJ/authorized_keys_${USER}.bak 8 | 9 | conf() { 10 | test -z "$PIDFILE" || stop_sshd 11 | (cat $OBJ/sshd_config.bak ; 12 | echo "PerSourcePenalties $@") > $OBJ/sshd_config 13 | cp $OBJ/authorized_keys_${USER}.bak $OBJ/authorized_keys_${USER} 14 | start_sshd 15 | } 16 | 17 | conf "noauth:10s authfail:10s max:20s min:1s" 18 | 19 | verbose "test connect" 20 | ${SSH} -F $OBJ/ssh_config somehost true || fatal "basic connect failed" 21 | 22 | verbose "penalty expiry" 23 | 24 | # Incur a penalty 25 | cat /dev/null > $OBJ/authorized_keys_${USER} 26 | ${SSH} -F $OBJ/ssh_config somehost true && fatal "authfail connect succeeded" 27 | sleep 2 28 | 29 | # Check denied 30 | cp $OBJ/authorized_keys_${USER}.bak $OBJ/authorized_keys_${USER} 31 | ${SSH} -F $OBJ/ssh_config somehost true && fatal "authfail not rejected" 32 | 33 | # Let it expire and try again. 34 | sleep 11 35 | ${SSH} -F $OBJ/ssh_config somehost true || fail "authfail not expired" 36 | -------------------------------------------------------------------------------- /regress/pesterTests/data/ssh_config: -------------------------------------------------------------------------------- 1 |  2 | ###OpenSSHE2ETests 3 | Host test_target 4 | HostName localhost 5 | Port 47002 6 | User sshtest_ssouser 7 | ###OpenSSHE2ETests 8 | 9 | 10 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_ca_userkeys: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACCbSeGZ+6Me6gaSAwK41/QILL6KnNUlem4XUu/Xm7RqYQAAAKCOV5jPjleY 4 | zwAAAAtzc2gtZWQyNTUxOQAAACCbSeGZ+6Me6gaSAwK41/QILL6KnNUlem4XUu/Xm7RqYQ 5 | AAAEBPPuXnlqwvhMYZNKaoMQS0GmtlJwFcctT3aZg1Ib4JaJtJ4Zn7ox7qBpIDArjX9Ags 6 | voqc1SV6bhdS79ebtGphAAAAG21hbm9qYW1wQHJlZG1vbmRAbWFub2otZGV2MwEC 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_ca_userkeys.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJtJ4Zn7ox7qBpIDArjX9Agsvoqc1SV6bhdS79ebtGph sshtest_ca_userkeys 2 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_hostkey_dsa: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQCMlRj8Es2gnnba6Ln5ha8FxlT82FDBz3j75XbjkRtvtVZi5D9m 3 | MPlOjB0Z2g8g64grpYZ5sCLnhsYR/rdBymxitI+16Rp8IJhTgSIOYCcEEwyfoF/q 4 | gto7ueVgdBpJMJfsZLZwBUqpo/LbUs1AYYdZLIeQOqFvjSo8BFR/LUBMRQIVALRi 5 | V3EINBtO4M7TgRWADQ4ykMi/AoGAV1kc6aMkFjaAdfAxm2Pc7qRoX8Lihpp5Y9pm 6 | NGmMWN6rtfvXIkDga8GCZX+HRCW4q8Kdl5isx2eixa5C0KbVXA9cA5Bv2v8DEb4f 7 | rW8ZauOUtxIdKDY9XKG4VJRZvZuTzNh1tS3HGzgBAVBvy+FXI9QIOJ+t/R9H8A0S 8 | /q8DqY4CgYBh/fSBidBGsQITgg45wwDszk7AAhngNm+jbiea8dbgYP6wpT6dJdg3 9 | pYwKT0V/PdXTSDi16kkoMkbUsMZyxyFJf/TtmCtBnon55yL9+H5dtcOBF8BXR7Kz 10 | QX1E1n0eIL9jZ0Q4BspkB4LKQXhxRnrNJlv/oopxXua/GCMW17xxuAIVAIy08ce7 11 | 877PESiaI4iDWj36uuWV 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_hostkey_dsa.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAIyVGPwSzaCedtroufmFrwXGVPzYUMHPePvlduORG2+1VmLkP2Yw+U6MHRnaDyDriCulhnmwIueGxhH+t0HKbGK0j7XpGnwgmFOBIg5gJwQTDJ+gX+qC2ju55WB0Gkkwl+xktnAFSqmj8ttSzUBhh1ksh5A6oW+NKjwEVH8tQExFAAAAFQC0YldxCDQbTuDO04EVgA0OMpDIvwAAAIBXWRzpoyQWNoB18DGbY9zupGhfwuKGmnlj2mY0aYxY3qu1+9ciQOBrwYJlf4dEJbirwp2XmKzHZ6LFrkLQptVcD1wDkG/a/wMRvh+tbxlq45S3Eh0oNj1cobhUlFm9m5PM2HW1LccbOAEBUG/L4Vcj1Ag4n639H0fwDRL+rwOpjgAAAIBh/fSBidBGsQITgg45wwDszk7AAhngNm+jbiea8dbgYP6wpT6dJdg3pYwKT0V/PdXTSDi16kkoMkbUsMZyxyFJf/TtmCtBnon55yL9+H5dtcOBF8BXR7KzQX1E1n0eIL9jZ0Q4BspkB4LKQXhxRnrNJlv/oopxXua/GCMW17xxuA== sshtest_hostkey_dsa 2 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_hostkey_ecdsa: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEICAT5BC1AJpeOsRQaettNtqw6rzKlHDgtGvqnYZuU8YOoAoGCCqGSM49 3 | AwEHoUQDQgAEcXZ5bCCdpRIs003SKXGJP3Xq4xrqW6wwHfUDF+QMYCuHjEJYvR7c 4 | X+BGJ9F6mEzRwPZ1KHwmLpWeOSG9mm2MTA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_hostkey_ecdsa.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHF2eWwgnaUSLNNN0ilxiT916uMa6lusMB31AxfkDGArh4xCWL0e3F/gRifRephM0cD2dSh8Ji6VnjkhvZptjEw= sshtest_hostkey_ecdsa 2 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_hostkey_ed25519: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACDLSTMcJ/oiVNF+PhAuz0o/3H3DG3T+moYaHbV8fukR7wAAAKACW4cWAluH 4 | FgAAAAtzc2gtZWQyNTUxOQAAACDLSTMcJ/oiVNF+PhAuz0o/3H3DG3T+moYaHbV8fukR7w 5 | AAAEDIU6PKvxw+6hgpQmTOOFeUasWnsYU3gricJCNrEHu2FstJMxwn+iJU0X4+EC7PSj/c 6 | fcMbdP6ahhodtXx+6RHvAAAAF3NzaHRlc3RfaG9zdGtleV9lZDI1NTE5AQIDBAUG 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_hostkey_ed25519.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMtJMxwn+iJU0X4+EC7PSj/cfcMbdP6ahhodtXx+6RHv sshtest_hostkey_ed25519 2 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_hostkey_rsa.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDU+NcQ5NuRutQJoZVjDmP/vE6IYZOaE59FTUjaoZkuPl4prdOPgqAnCwSy9XtnfzPm/oe62SyYIHgj8wRzhqjMU8g8aGqfv9ryF+hpNXZrFYXIdkdxnubzfb4e70RRRoTH8P5vuY8sAn0FIRlV/3EDkSKBFy2W3InMTO6l8gbkzzkgbn1GLvH06QJVdb2PcHksSn7dJBVHWASYi3TJWWu4muI+ZNfothujxAHqjKTJuJ9apDZIc0tnkPmlifRmolSUS4OAH2KWZ+5Gwaj7gsB8bk4QuA+QCT60OCcuzCcy4FBuXvvXkM9MBe/P2KZjVLAn86SriRtoE4RI+9R9S7DV sshtest_hostkey_rsa 2 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_userssokey_ed25519: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACArxdmtP2DtTFvNp+4N4vlEP2tBmG7QtG4qfNUKlYmxRQAAAKAX+9lZF/vZ 4 | WQAAAAtzc2gtZWQyNTUxOQAAACArxdmtP2DtTFvNp+4N4vlEP2tBmG7QtG4qfNUKlYmxRQ 5 | AAAEBkZYPXRU9wu7OCcBia+eKvWOtDKpZRibjGQMTdBlCn5CvF2a0/YO1MW82n7g3i+UQ/ 6 | a0GYbtC0bip81QqVibFFAAAAGnNzaHRlc3RfdXNlcnNzb2tleV9lZDI1NTE5AQID 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /regress/pesterTests/data/sshtest_userssokey_ed25519.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICvF2a0/YO1MW82n7g3i+UQ/a0GYbtC0bip81QqVibFF sshtest_userssokey_ed25519 2 | -------------------------------------------------------------------------------- /regress/pesterTests/utilities/askpass_util/README.txt: -------------------------------------------------------------------------------- 1 | askpass_util is a test utility to be used in conjunction with SSH_ASKPASS in ssh. 2 | 3 | It simply spits out environment variable stored in ASKPASS_PASSWORD. -------------------------------------------------------------------------------- /regress/pesterTests/utilities/askpass_util/askpass_util.cpp: -------------------------------------------------------------------------------- 1 | // askpass_util.cpp : Defines the entry point for the console application. 2 | // 3 | 4 | #include 5 | #include 6 | 7 | int main() 8 | { 9 | //read from environment variable, spit it out on stdout 10 | printf("%s", getenv("ASKPASS_PASSWORD")); 11 | return 0; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /regress/pesterTests/utilities/askpass_util/askpass_util.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerShell/openssh-portable/bdacf9868fe9e8024a5312861b7aaa6faba1821f/regress/pesterTests/utilities/askpass_util/askpass_util.exe -------------------------------------------------------------------------------- /regress/portnum.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: portnum.sh,v 1.2 2013/05/17 10:34:30 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="port number parsing" 5 | 6 | badport() { 7 | port=$1 8 | verbose "$tid: invalid port $port" 9 | if ${SSH} -F $OBJ/ssh_proxy -p $port somehost true 2>/dev/null ; then 10 | fail "$tid accepted invalid port $port" 11 | fi 12 | } 13 | goodport() { 14 | port=$1 15 | verbose "$tid: valid port $port" 16 | if ${SSH} -F $OBJ/ssh_proxy -p $port somehost true 2>/dev/null ; then 17 | : 18 | else 19 | fail "$tid rejected valid port $port" 20 | fi 21 | } 22 | 23 | badport 0 24 | badport 65536 25 | badport 131073 26 | badport 2000blah 27 | badport blah2000 28 | 29 | goodport 1 30 | goodport 22 31 | goodport 2222 32 | goodport 22222 33 | goodport 65535 34 | 35 | -------------------------------------------------------------------------------- /regress/proto-mismatch.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: proto-mismatch.sh,v 1.5 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="protocol version mismatch" 5 | 6 | mismatch () 7 | { 8 | client=$2 9 | banner=`echo ${client} | ${SSHD} -i -f ${OBJ}/sshd_proxy` 10 | r=$? 11 | trace "sshd prints ${banner}" 12 | if [ $r -ne 255 ]; then 13 | fail "sshd prints ${banner} but accepts version ${client}" 14 | fi 15 | } 16 | 17 | mismatch SSH-1.5-HALLO 18 | -------------------------------------------------------------------------------- /regress/proto-version.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: proto-version.sh,v 1.7 2017/06/07 01:48:15 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="sshd version with different protocol combinations" 5 | 6 | # we just start sshd in inetd mode and check the banner 7 | check_version () 8 | { 9 | expect=$1 10 | banner=`printf '' | ${SSHD} -i -f ${OBJ}/sshd_proxy` 11 | case ${banner} in 12 | SSH-1.99-*) 13 | proto=199 14 | ;; 15 | SSH-2.0-*) 16 | proto=20 17 | ;; 18 | SSH-1.5-*) 19 | proto=15 20 | ;; 21 | *) 22 | proto=0 23 | ;; 24 | esac 25 | if [ ${expect} -ne ${proto} ]; then 26 | fail "wrong protocol version ${banner}" 27 | fi 28 | } 29 | 30 | check_version 20 31 | -------------------------------------------------------------------------------- /regress/proxy-connect.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: proxy-connect.sh,v 1.12 2020/01/23 11:19:12 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="proxy connect" 5 | 6 | if [ "`${SSH} -Q compression`" = "none" ]; then 7 | comp="no" 8 | else 9 | comp="no yes" 10 | fi 11 | 12 | for c in $comp; do 13 | verbose "plain username comp=$c" 14 | opts="-oCompression=$c -F $OBJ/ssh_proxy" 15 | SSH_CONNECTION=`${SSH} $opts 999.999.999.999 'echo $SSH_CONNECTION'` 16 | if [ $? -ne 0 ]; then 17 | fail "ssh proxyconnect comp=$c failed" 18 | fi 19 | if [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then 20 | fail "bad SSH_CONNECTION comp=$c: " \ 21 | "$SSH_CONNECTION" 22 | fi 23 | done 24 | 25 | verbose "username with style" 26 | ${SSH} -F $OBJ/ssh_proxy ${USER}:style@999.999.999.999 true || \ 27 | fail "ssh proxyconnect failed" 28 | -------------------------------------------------------------------------------- /regress/putty-kex.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: putty-kex.sh,v 1.11 2024/02/09 08:56:59 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="putty KEX" 5 | 6 | puttysetup 7 | 8 | cp ${OBJ}/sshd_proxy ${OBJ}/sshd_proxy_bak 9 | 10 | # Enable group1, which PuTTY now disables by default 11 | echo "KEX=dh-group1-sha1" >>${OBJ}/.putty/sessions/localhost_proxy 12 | 13 | # Grepping algos out of the binary is pretty janky, but AFAIK there's no way 14 | # to query supported algos. 15 | kex="" 16 | for k in `$SSH -Q kex`; do 17 | if strings "${PLINK}" | grep -E "^${k}$" >/dev/null; then 18 | kex="${kex} ${k}" 19 | else 20 | trace "omitting unsupported KEX ${k}" 21 | fi 22 | done 23 | 24 | for k in ${kex}; do 25 | verbose "$tid: kex $k" 26 | cp ${OBJ}/sshd_proxy_bak ${OBJ}/sshd_proxy 27 | echo "KexAlgorithms ${k}" >>${OBJ}/sshd_proxy 28 | 29 | env HOME=$PWD ${PLINK} -v -load localhost_proxy -batch -i ${OBJ}/putty.rsa2 true \ 30 | 2>${OBJ}/log/putty-kex-$k.log 31 | if [ $? -ne 0 ]; then 32 | fail "KEX $k failed" 33 | fi 34 | kexmsg=`grep -E '^Doing.* key exchange' ${OBJ}/log/putty-kex-$k.log` 35 | trace putty: ${kexmsg} 36 | done 37 | -------------------------------------------------------------------------------- /regress/putty-transfer.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: putty-transfer.sh,v 1.12 2024/02/09 08:47:42 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="putty transfer data" 5 | 6 | puttysetup 7 | 8 | if [ "`${SSH} -Q compression`" = "none" ]; then 9 | comp="0" 10 | else 11 | comp="0 1" 12 | fi 13 | 14 | for c in $comp; do 15 | verbose "$tid: compression $c" 16 | rm -f ${COPY} 17 | cp ${OBJ}/.putty/sessions/localhost_proxy \ 18 | ${OBJ}/.putty/sessions/compression_$c 19 | echo "Compression=$c" >> ${OBJ}/.putty/sessions/kex_$k 20 | env HOME=$PWD ${PLINK} -load compression_$c -batch \ 21 | -i ${OBJ}/putty.rsa2 cat ${DATA} > ${COPY} 22 | if [ $? -ne 0 ]; then 23 | fail "ssh cat $DATA failed" 24 | fi 25 | cmp ${DATA} ${COPY} || fail "corrupted copy" 26 | 27 | for s in 10 100 1k 32k 64k 128k 256k; do 28 | trace "compression $c dd-size ${s}" 29 | rm -f ${COPY} 30 | dd if=$DATA obs=${s} 2> /dev/null | \ 31 | env HOME=$PWD ${PLINK} -load compression_$c \ 32 | -batch -i ${OBJ}/putty.rsa2 \ 33 | "cat > ${COPY}" 34 | if [ $? -ne 0 ]; then 35 | fail "ssh cat $DATA failed" 36 | fi 37 | cmp $DATA ${COPY} || fail "corrupted copy" 38 | done 39 | done 40 | rm -f ${COPY} 41 | 42 | -------------------------------------------------------------------------------- /regress/rsa_openssh.prv: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICWgIBAAKBgQDsilwKcaKN6wSMNd1WgQ9+HRqQEkD0kCTVttrazGu0OhBU3Uko 3 | +dFD1Ip0CxdXmN25JQWxOYF7h/Ocu8P3jzv3RTX87xKR0YzlXTLX+SLtF/ySebS3 4 | xWPrlfRUDhh03hR5V+8xxvvy9widPYKw/oItwGSueOsEq1LTczCDv2dAjQIDAQAB 5 | An8nH5VzvHkMbSqJ6eOYDsVwomRvYbH5IEaYl1x6VATITNvAu9kUdQ4NsSpuMc+7 6 | Jj9gKZvmO1y2YCKc0P/iO+i/eV0L+yQh1Rw18jQZll+12T+LZrKRav03YNvMx0gN 7 | wqWY48Kt6hv2/N/ebQzKRe79+D0t2cTh92hT7xENFLIBAkEBGnoGKFjAUkJCwO1V 8 | mzpUqMHpRZVOrqP9hUmPjzNJ5oBPFGe4+h1hoSRFOAzaNuZt8ssbqaLCkzB8bfzj 9 | qhZqAQJBANZekuUpp8iBLeLSagw5FkcPwPzq6zfExbhvsZXb8Bo/4SflNs4JHXwI 10 | 7SD9Z8aJLvM4uQ/5M70lblDMQ40i3o0CQQDIJvBYBFL5tlOgakq/O7yi+wt0L5BZ 11 | 9H79w5rCSAA0IHRoK/qI1urHiHC3f3vbbLk5UStfrqEaND/mm0shyNIBAkBLsYdC 12 | /ctt5Bc0wUGK4Vl5bBmj9LtrrMJ4FpBpLwj/69BwCuKoK9XKZ0h73p6XHveCEGRg 13 | PIlFX4MtaoLrwgU9AkBV2k4dgIws+X8YX65EsyyFjnlDqX4x0nSOjQB1msIKfHBr 14 | dh5XLDBTTCxnKhMJ0Yx/opgOvf09XHBFwaQntR5i 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /regress/rsa_openssh.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDsilwKcaKN6wSMNd1WgQ9+HRqQEkD0kCTVttrazGu0OhBU3Uko+dFD1Ip0CxdXmN25JQWxOYF7h/Ocu8P3jzv3RTX87xKR0YzlXTLX+SLtF/ySebS3xWPrlfRUDhh03hR5V+8xxvvy9widPYKw/oItwGSueOsEq1LTczCDv2dAjQ== 2 | -------------------------------------------------------------------------------- /regress/rsa_ssh2.prv: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ---- 2 | Subject: ssh-keygen test 3 | Comment: "1024-bit rsa, Sat Jun 23 2001 12:21:26 -0400" 4 | P2/56wAAAi4AAAA3aWYtbW9kbntzaWdue3JzYS1wa2NzMS1zaGExfSxlbmNyeXB0e3JzYS 5 | 1wa2NzMXYyLW9hZXB9fQAAAARub25lAAAB3wAAAdsAAAARAQABAAAD9icflXO8eQxtKonp 6 | 45gOxXCiZG9hsfkgRpiXXHpUBMhM28C72RR1Dg2xKm4xz7smP2Apm+Y7XLZgIpzQ/+I76L 7 | 95XQv7JCHVHDXyNBmWX7XZP4tmspFq/Tdg28zHSA3CpZjjwq3qG/b8395tDMpF7v34PS3Z 8 | xOH3aFPvEQ0UsgEAAAQA7IpcCnGijesEjDXdVoEPfh0akBJA9JAk1bba2sxrtDoQVN1JKP 9 | nRQ9SKdAsXV5jduSUFsTmBe4fznLvD948790U1/O8SkdGM5V0y1/ki7Rf8knm0t8Vj65X0 10 | VA4YdN4UeVfvMcb78vcInT2CsP6CLcBkrnjrBKtS03Mwg79nQI0AAAH/VdpOHYCMLPl/GF 11 | +uRLMshY55Q6l+MdJ0jo0AdZrCCnxwa3YeVywwU0wsZyoTCdGMf6KYDr39PVxwRcGkJ7Ue 12 | YgAAAgDWXpLlKafIgS3i0moMORZHD8D86us3xMW4b7GV2/AaP+En5TbOCR18CO0g/WfGiS 13 | 7zOLkP+TO9JW5QzEONIt6NAAACAQEaegYoWMBSQkLA7VWbOlSowelFlU6uo/2FSY+PM0nm 14 | gE8UZ7j6HWGhJEU4DNo25m3yyxuposKTMHxt/OOqFmoB 15 | ---- END SSH2 ENCRYPTED PRIVATE KEY ---- 16 | --- 17 | -------------------------------------------------------------------------------- /regress/sftp.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: sftp.sh,v 1.6 2017/10/30 21:59:43 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="basic sftp put/get" 5 | 6 | SFTPCMDFILE=${OBJ}/batch 7 | cat >$SFTPCMDFILE < /dev/null 2>&1 22 | r=$? 23 | if [ $r -ne 0 ]; then 24 | fail "sftp failed with $r" 25 | else 26 | cmp $DATA ${COPY}.1 || fail "corrupted copy after get" 27 | cmp $DATA ${COPY}.2 || fail "corrupted copy after put" 28 | fi 29 | done 30 | done 31 | rm -f ${COPY}.1 ${COPY}.2 32 | rm -f $SFTPCMDFILE 33 | -------------------------------------------------------------------------------- /regress/ssh2putty.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # $OpenBSD: ssh2putty.sh,v 1.9 2021/07/25 12:13:03 dtucker Exp $ 3 | 4 | if test "x$1" = "x" -o "x$2" = "x" -o "x$3" = "x" ; then 5 | echo "Usage: ssh2putty hostname port ssh-private-key" 6 | exit 1 7 | fi 8 | 9 | HOST=$1 10 | PORT=$2 11 | KEYFILE=$3 12 | 13 | OPENSSL_BIN="${OPENSSL_BIN:-openssl}" 14 | 15 | # XXX - support DSA keys too 16 | if grep "BEGIN RSA PRIVATE KEY" $KEYFILE >/dev/null 2>&1 ; then 17 | : 18 | else 19 | echo "Unsupported private key format" 20 | exit 1 21 | fi 22 | 23 | public_exponent=` 24 | $OPENSSL_BIN rsa -noout -text -in $KEYFILE | grep ^publicExponent | 25 | sed 's/.*(//;s/).*//' 26 | ` 27 | test $? -ne 0 && exit 1 28 | 29 | modulus=` 30 | $OPENSSL_BIN rsa -noout -modulus -in $KEYFILE | grep ^Modulus= | 31 | sed 's/^Modulus=/0x/' | tr A-Z a-z 32 | ` 33 | test $? -ne 0 && exit 1 34 | 35 | echo "rsa2@$PORT:$HOST $public_exponent,$modulus" 36 | 37 | -------------------------------------------------------------------------------- /regress/stderr-after-eof.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: stderr-after-eof.sh,v 1.3 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="stderr data after eof" 5 | 6 | # setup data 7 | rm -f ${DATA} ${COPY} 8 | cp /dev/null ${DATA} 9 | for i in 1 2 3 4 5 6; do 10 | (date;echo $i) | md5 >> ${DATA} 11 | done 12 | 13 | ${SSH} -F $OBJ/ssh_proxy otherhost \ 14 | exec sh -c \'"exec > /dev/null; sleep 2; cat ${DATA} 1>&2 $s"\' \ 15 | 2> ${COPY} 16 | r=$? 17 | if [ $r -ne 0 ]; then 18 | fail "ssh failed with exit code $r" 19 | fi 20 | egrep 'Disconnecting: Received extended_data after EOF' ${COPY} && 21 | fail "ext data received after eof" 22 | cmp ${DATA} ${COPY} || fail "stderr corrupt" 23 | 24 | rm -f ${DATA} ${COPY} 25 | -------------------------------------------------------------------------------- /regress/stderr-data.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: stderr-data.sh,v 1.5 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="stderr data transfer" 5 | 6 | for n in '' -n; do 7 | verbose "test $tid: ($n)" 8 | ${SSH} $n -F $OBJ/ssh_proxy otherhost exec \ 9 | sh -c \'"exec > /dev/null; sleep 3; cat ${DATA} 1>&2 $s"\' \ 10 | 2> ${COPY} 11 | r=$? 12 | if [ $r -ne 0 ]; then 13 | fail "ssh failed with exit code $r" 14 | fi 15 | cmp ${DATA} ${COPY} || fail "stderr corrupt" 16 | rm -f ${COPY} 17 | 18 | ${SSH} $n -F $OBJ/ssh_proxy otherhost exec \ 19 | sh -c \'"echo a; exec > /dev/null; sleep 3; cat ${DATA} 1>&2 $s"\' \ 20 | > /dev/null 2> ${COPY} 21 | r=$? 22 | if [ $r -ne 0 ]; then 23 | fail "ssh failed with exit code $r" 24 | fi 25 | cmp ${DATA} ${COPY} || fail "stderr corrupt" 26 | rm -f ${COPY} 27 | done 28 | -------------------------------------------------------------------------------- /regress/t11.ok: -------------------------------------------------------------------------------- 1 | SHA256:4w1rnrek3klTJOTVhwuCIFd5k+pq9Bfo5KTxxb8BqbY 2 | -------------------------------------------------------------------------------- /regress/t4.ok: -------------------------------------------------------------------------------- 1 | MD5:3b:dd:44:e9:49:18:84:95:f1:e7:33:6b:9d:93:b1:36 2 | -------------------------------------------------------------------------------- /regress/t5.ok: -------------------------------------------------------------------------------- 1 | xokes-lylis-byleh-zebib-kalus-bihas-tevah-haroz-suhar-foved-noxex 2 | -------------------------------------------------------------------------------- /regress/transfer.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: transfer.sh,v 1.4 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="transfer data" 5 | 6 | rm -f ${COPY} 7 | ${SSH} -n -q -F $OBJ/ssh_proxy somehost cat ${DATA} > ${COPY} 8 | if [ $? -ne 0 ]; then 9 | fail "ssh cat $DATA failed" 10 | fi 11 | cmp ${DATA} ${COPY} || fail "corrupted copy" 12 | 13 | for s in 10 100 1k 32k 64k 128k 256k; do 14 | trace "dd-size ${s}" 15 | rm -f ${COPY} 16 | dd if=$DATA obs=${s} 2> /dev/null | \ 17 | ${SSH} -q -F $OBJ/ssh_proxy somehost "cat > ${COPY}" 18 | if [ $? -ne 0 ]; then 19 | fail "ssh cat $DATA failed" 20 | fi 21 | cmp $DATA ${COPY} || fail "corrupted copy" 22 | done 23 | rm -f ${COPY} 24 | -------------------------------------------------------------------------------- /regress/try-ciphers.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: try-ciphers.sh,v 1.26 2017/04/30 23:34:55 djm Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="try ciphers" 5 | 6 | cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak 7 | 8 | for c in `${SSH} -Q cipher`; do 9 | n=0 10 | for m in `${SSH} -Q mac`; do 11 | if [ "$os" == "windows" ]; then 12 | c=${c/$'\r'/} # remove CR (carriage return) 13 | m=${m/$'\r'/} # remove CR (carriage return) 14 | fi 15 | trace "cipher $c mac $m" 16 | verbose "test $tid: cipher $c mac $m" 17 | cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy 18 | echo "Ciphers=$c" >> $OBJ/sshd_proxy 19 | echo "MACs=$m" >> $OBJ/sshd_proxy 20 | ${SSH} -F $OBJ/ssh_proxy -m $m -c $c somehost true 21 | if [ $? -ne 0 ]; then 22 | fail "ssh failed with mac $m cipher $c" 23 | fi 24 | # No point trying all MACs for AEAD ciphers since they 25 | # are ignored. 26 | if ${SSH} -Q cipher-auth | grep "^${c}\$" >/dev/null 2>&1 ; then 27 | break 28 | fi 29 | n=`expr $n + 1` 30 | done 31 | done 32 | 33 | -------------------------------------------------------------------------------- /regress/unittests/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.13 2023/09/24 08:14:13 claudio Exp $ 2 | 3 | SUBDIR= test_helper sshbuf sshkey bitmap kex hostkeys utf8 match conversion 4 | SUBDIR+=authopt misc sshsig 5 | 6 | .include 7 | -------------------------------------------------------------------------------- /regress/unittests/authopt/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.7 2023/01/15 23:35:10 djm Exp $ 2 | 3 | PROG=test_authopt 4 | SRCS=tests.c 5 | 6 | SRCS+=auth-options.c 7 | 8 | # From usr.bin/ssh 9 | SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c 10 | SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c 11 | SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c 12 | SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c 13 | SRCS+=addr.c addrmatch.c bitmap.c 14 | SRCS+=ed25519.c hash.c 15 | SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c 16 | SRCS+=ssh-ed25519-sk.c sk-usbhid.c 17 | 18 | SRCS+=digest-openssl.c 19 | #SRCS+=digest-libc.c 20 | SRCS+=utf8.c 21 | 22 | REGRESS_TARGETS=run-regress-${PROG} 23 | 24 | run-regress-${PROG}: ${PROG} 25 | env ${TEST_ENV} ./${PROG} -d ${.CURDIR}/testdata 26 | 27 | .include 28 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/all_permit.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIOv/h7mJS1WkRHukSvqPwKDiNVrcib/VqBLpbHW6xjWCAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAIIAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAKcGVybWl0LXB0eQAAAAAAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAADMAAAALc3NoLWVkMjU1MTkAAAAgKFWCzCzQTh9UkoHphbgwaa86Q16Kern0UjqOr7Q+Jk8AAABTAAAAC3NzaC1lZDI1NTE5AAAAQNe1XDN+J4Eb82TH5J5sYypcabocufjTFRfpU57K+csRP41Yo1FCSEWx95ilUuNvK9Iv3yFDOeVPzdqRqzWoHwE= user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/bad_sourceaddr.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAILFEJyunlz9scYU3mwbOEJoSSkeO1z20uNBw13tEn+lJAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAHwAAAA5zb3VyY2UtYWRkcmVzcwAAAAkAAAAFeHh4eHgAAACCAAAAFXBlcm1pdC1YMTEtZm9yd2FyZGluZwAAAAAAAAAXcGVybWl0LWFnZW50LWZvcndhcmRpbmcAAAAAAAAAFnBlcm1pdC1wb3J0LWZvcndhcmRpbmcAAAAAAAAACnBlcm1pdC1wdHkAAAAAAAAADnBlcm1pdC11c2VyLXJjAAAAAAAAAAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIChVgsws0E4fVJKB6YW4MGmvOkNeinq59FI6jq+0PiZPAAAAUwAAAAtzc2gtZWQyNTUxOQAAAEA5xY/OEAJ3tgg8/KJqaBR5KMdYYRDiMJ6u4VKS9lQOV1HJQvDDvjj3F5k53BIqTJRVQx242YWs+B3C4db/uLgB user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/force_command.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIJkpCeqaVl6qnp7qa90KehAmHFecx3HW8HZQ22KEqeKBAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAHAAAAA1mb3JjZS1jb21tYW5kAAAABwAAAANmb28AAACCAAAAFXBlcm1pdC1YMTEtZm9yd2FyZGluZwAAAAAAAAAXcGVybWl0LWFnZW50LWZvcndhcmRpbmcAAAAAAAAAFnBlcm1pdC1wb3J0LWZvcndhcmRpbmcAAAAAAAAACnBlcm1pdC1wdHkAAAAAAAAADnBlcm1pdC11c2VyLXJjAAAAAAAAAAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIChVgsws0E4fVJKB6YW4MGmvOkNeinq59FI6jq+0PiZPAAAAUwAAAAtzc2gtZWQyNTUxOQAAAEAxbhjgbXvfEumRP1E7VH8nUfuJyVlDChhCxiPg9Nvb9PFK8cHdDUEybDCzKCsIDieRc3mtLTyEu7Kb52va/B4C user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/host.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIFWMw3ftP29RSefnxQwdvK1KiE2G9Y7rPRrJ7ZsrDiOeAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAACAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAAAAAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACAoVYLMLNBOH1SSgemFuDBprzpDXop6ufRSOo6vtD4mTwAAAFMAAAALc3NoLWVkMjU1MTkAAABAKTMqwPkaBg23RS7/aj347dc2kY4bWt/sHwzREYSrKRqZ5RNBnSvZOQ8m5euMCEuf92bZ8VJEdF653jRiW6VoBA== user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/no_agentfwd.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIL2qEsLCVtKaBkbCrZicxbPUorcHHrQ8yw5h/26krTOlAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAGMAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABZwZXJtaXQtcG9ydC1mb3J3YXJkaW5nAAAAAAAAAApwZXJtaXQtcHR5AAAAAAAAAA5wZXJtaXQtdXNlci1yYwAAAAAAAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACAoVYLMLNBOH1SSgemFuDBprzpDXop6ufRSOo6vtD4mTwAAAFMAAAALc3NoLWVkMjU1MTkAAABAdRhISpol01OwV30g39PM/JD1t35muskX4lyCcGpFQ08GQtBuHE/hABOp6apbGBJIC7CZYYF+uHkD7PfGU3NPAQ== user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/no_permit.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIGVQtVgp9sD4sc8esIhVWbZaM8d0NxpX3UbEVzTHm9feAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAAAAAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACAoVYLMLNBOH1SSgemFuDBprzpDXop6ufRSOo6vtD4mTwAAAFMAAAALc3NoLWVkMjU1MTkAAABAIKlI0TqqraKjYTjIuKhwoxAV/XnzWRJHq8lNs4aj5yDb84un2xXDF/0vXoLjPgVcLgEbksBKKn0i4whp+xn9Ag== user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/no_portfwd.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIE6gC/QjjuzGWVDkr8ZyaHhja80V+lKLC/MvmEFa+CEBAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAGQAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAKcGVybWl0LXB0eQAAAAAAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAADMAAAALc3NoLWVkMjU1MTkAAAAgKFWCzCzQTh9UkoHphbgwaa86Q16Kern0UjqOr7Q+Jk8AAABTAAAAC3NzaC1lZDI1NTE5AAAAQEzpgckYlfc1BK1ir0reDSXo9OIDx4UoDMrNXrFO6I44NXoJJ4TlUUJH07WcKp/Xp5ESCdyVZtqwgHQxZr0+PwI= user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/no_pty.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIFFjhISpSDR3blDejuCf2T9Fe4aHW53jG7KOH2PV/E7jAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAHAAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAADMAAAALc3NoLWVkMjU1MTkAAAAgKFWCzCzQTh9UkoHphbgwaa86Q16Kern0UjqOr7Q+Jk8AAABTAAAAC3NzaC1lZDI1NTE5AAAAQF5c4BdxVYgqbMGAep414IGFK4deCFBCeNUTOLpKodrfb1M0gS4d2qoeMxZvMv5yMf/viKl/gallHzEmcrEcIQY= user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/no_user_rc.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIFUM0VLATkYh05QeS5uuhB1X50NMom3jTWeQUmrPQ1FwAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAGwAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAKcGVybWl0LXB0eQAAAAAAAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACAoVYLMLNBOH1SSgemFuDBprzpDXop6ufRSOo6vtD4mTwAAAFMAAAALc3NoLWVkMjU1MTkAAABAcmJ3c2FCKJL9BCLv1Ij+uN1N+NWZmMXYionsSkv42Go4pMZiH3g8UfTd+OKq9Q7GAcCzGXa///6Dr/wqFssoDA== user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/no_x11fwd.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIPRKPAP+b5S+4zihdgoJrYNcMovFBgKZaJupIhN1kUvkAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAGUAAAAXcGVybWl0LWFnZW50LWZvcndhcmRpbmcAAAAAAAAAFnBlcm1pdC1wb3J0LWZvcndhcmRpbmcAAAAAAAAACnBlcm1pdC1wdHkAAAAAAAAADnBlcm1pdC11c2VyLXJjAAAAAAAAAAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIChVgsws0E4fVJKB6YW4MGmvOkNeinq59FI6jq+0PiZPAAAAUwAAAAtzc2gtZWQyNTUxOQAAAECMzj6VDfT+BJmIEo1qUKdr8VDLExF92K7KkbNxTH77n7uip7TL24HDfXjYBCvqxSSn9KAGBhnWsIC/GPx6A+cP user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/only_agentfwd.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIOvJ28yW5uvA7yxE3ySuyFvPjcRYKAr03CYr4okGTNIFAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAB8AAAAXcGVybWl0LWFnZW50LWZvcndhcmRpbmcAAAAAAAAAAAAAADMAAAALc3NoLWVkMjU1MTkAAAAgKFWCzCzQTh9UkoHphbgwaa86Q16Kern0UjqOr7Q+Jk8AAABTAAAAC3NzaC1lZDI1NTE5AAAAQEG2uTgmOSk9dJ0s/Ol1EIERXFP9PF6AauF9t5jBMSthNyvSANSrC/1EIaf4TV5kMYfhZxJXoS0XHQjGndcq2AE= user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/only_portfwd.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIGPoYoExiSyHMyDEvOFgoNZXk5z91u7xq/7357X23TotAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAB4AAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACAoVYLMLNBOH1SSgemFuDBprzpDXop6ufRSOo6vtD4mTwAAAFMAAAALc3NoLWVkMjU1MTkAAABAHN3YnwipcbDKVn+PObGSoaT9rwlau+yrPYZ50oetvCKng3RMjGaV+roqlv0vjjLcxE9J4Y0ti+9MXtQ0D7beBA== user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/only_pty.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAILvocWYto5Lg7P46YLbe7U4/b2h9Lr5rWqMZ4Cj4ra7RAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAABIAAAAKcGVybWl0LXB0eQAAAAAAAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACAoVYLMLNBOH1SSgemFuDBprzpDXop6ufRSOo6vtD4mTwAAAFMAAAALc3NoLWVkMjU1MTkAAABASv2xQvp+Y6E8dCf5pzg3MZaan5bl1ToYXNcmQ3ysGrk9Djkcu8m3TytDpF471KmUejxy/iF4xjs9CDpk7h+SBQ== user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/only_user_rc.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIJwsRZQ7kx4A8AQ0q/G/3i6sHM48kr4TxJtTcyy3lZAPAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAABYAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAADMAAAALc3NoLWVkMjU1MTkAAAAgKFWCzCzQTh9UkoHphbgwaa86Q16Kern0UjqOr7Q+Jk8AAABTAAAAC3NzaC1lZDI1NTE5AAAAQDhgEXsvoHr21XrxmiZq/sIjWeYapp11XvEVkkTBPVhBnPwtrrUeJbPmGs3gmJkQdv8BYajYpT7TXEX8GvEeLwU= user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/only_x11fwd.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIDAhZFZBl3eu8Qa8I5BaHCz/mpH8xCjaPusBwo1eJ9OGAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAAAAAAB0AAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAAAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIChVgsws0E4fVJKB6YW4MGmvOkNeinq59FI6jq+0PiZPAAAAUwAAAAtzc2gtZWQyNTUxOQAAAEDysfgbhniX/zdA8576rrDJpaO2D7QtQse2KWIM9XmREPkLKeP6FKiXKKFcPQiMyV28rptfvK8bBXAiOvITSUgL user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/sourceaddr.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIJ54qqoPs87gtjN1aJoLUn7ZTYUtcaGxkzLyJvRkYG7nAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAALgAAAA5zb3VyY2UtYWRkcmVzcwAAABgAAAAUMTI3LjAuMC4xLzMyLDo6MS8xMjgAAACCAAAAFXBlcm1pdC1YMTEtZm9yd2FyZGluZwAAAAAAAAAXcGVybWl0LWFnZW50LWZvcndhcmRpbmcAAAAAAAAAFnBlcm1pdC1wb3J0LWZvcndhcmRpbmcAAAAAAAAACnBlcm1pdC1wdHkAAAAAAAAADnBlcm1pdC11c2VyLXJjAAAAAAAAAAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIChVgsws0E4fVJKB6YW4MGmvOkNeinq59FI6jq+0PiZPAAAAUwAAAAtzc2gtZWQyNTUxOQAAAEAppSUKQ/a9tw/HgIazWceCO3d48GU7mkV4iQMpWWs2nB1dFryY1GDtZrBggAjMviwmBXyM3jIk5vxJDINZXGQJ user key 2 | -------------------------------------------------------------------------------- /regress/unittests/authopt/testdata/unknown_critical.cert: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIIjs/wRAB/p5QShSfqoU9cWnCLT3lSveUirk61A27KxVAAAAICeF4LbtRqwIRhewXifa5PKpbSU9P/K8CzeVYj8J/iBoAAAAAAAAAAEAAAABAAAABHVzZXIAAAAIAAAABHVzZXIAAAAANouDYAAAAAA4a2VgAAAAEwAAAARibGFoAAAABwAAAANmb28AAACCAAAAFXBlcm1pdC1YMTEtZm9yd2FyZGluZwAAAAAAAAAXcGVybWl0LWFnZW50LWZvcndhcmRpbmcAAAAAAAAAFnBlcm1pdC1wb3J0LWZvcndhcmRpbmcAAAAAAAAACnBlcm1pdC1wdHkAAAAAAAAADnBlcm1pdC11c2VyLXJjAAAAAAAAAAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIChVgsws0E4fVJKB6YW4MGmvOkNeinq59FI6jq+0PiZPAAAAUwAAAAtzc2gtZWQyNTUxOQAAAEDix3FV7JIBuHNAwtZOVIqGBq8lqhnEwP51DqPA43qt+Tzynm56EWxuFzgGehBPF3L8gl+fVqxIJmiQ9iHB0LUD user key 2 | -------------------------------------------------------------------------------- /regress/unittests/bitmap/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.4 2017/12/21 00:41:22 djm Exp $ 2 | 3 | PROG=test_bitmap 4 | SRCS=tests.c 5 | 6 | # From usr.sbin/ssh 7 | SRCS+=bitmap.c atomicio.c 8 | 9 | REGRESS_TARGETS=run-regress-${PROG} 10 | 11 | run-regress-${PROG}: ${PROG} 12 | env ${TEST_ENV} ./${PROG} 13 | 14 | .include 15 | -------------------------------------------------------------------------------- /regress/unittests/conversion/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.4 2021/01/09 12:24:30 dtucker Exp $ 2 | 3 | PROG=test_conversion 4 | SRCS=tests.c 5 | 6 | # From usr.bin/ssh 7 | SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c 8 | SRCS+=atomicio.c misc.c xmalloc.c log.c uidswap.c cleanup.c fatal.c ssherr.c 9 | SRCS+=match.c addr.c addrmatch.c 10 | 11 | REGRESS_TARGETS=run-regress-${PROG} 12 | 13 | run-regress-${PROG}: ${PROG} 14 | env ${TEST_ENV} ./${PROG} 15 | 16 | .include 17 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.10 2023/01/15 23:35:10 djm Exp $ 2 | 3 | PROG=test_hostkeys 4 | SRCS=tests.c test_iterate.c 5 | 6 | # From usr.bin/ssh 7 | SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c 8 | SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c 9 | SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c 10 | SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c 11 | SRCS+=addr.c addrmatch.c bitmap.c hostfile.c 12 | SRCS+=ed25519.c hash.c 13 | SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c 14 | SRCS+=ssh-ed25519-sk.c sk-usbhid.c 15 | 16 | SRCS+=digest-openssl.c 17 | #SRCS+=digest-libc.c 18 | SRCS+=utf8.c 19 | 20 | REGRESS_TARGETS=run-regress-${PROG} 21 | 22 | run-regress-${PROG}: ${PROG} 23 | env ${TEST_ENV} ./${PROG} -d ${.CURDIR}/testdata 24 | 25 | .include 26 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/dsa_1.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAOqffHxEW4c+Z9q/r3l4sYK8F7qrBsU8XF9upGsW62T9InROFFq9IO0x3pQ6mDA0Wtw0sqcDmkPCHPyP4Ok/fU3/drLaZusHoVYu8pBBrWsIDrKgkeX9TEodBsSrYdl4Sqtqq9EZv9+DttV6LStZrgYyUTOKwOF95wGantpLynX5AAAAFQDdt+zjRNlETDsgmxcSYFgREirJrQAAAIBQlrPaiPhR24FhnMLcHH4016vL7AqDDID6Qw7PhbXGa4/XlxWMIigjBKrIPKvnZ6p712LSnCKtcbfdx0MtmJlNa01CYqPaRhgRaf+uGdvTkTUcdaq8R5lLJL+JMNwUhcC8ijm3NqEjXjffuebGe1EzIeiITbA7Nndcd+GytwRDegAAAIEAkRYPjSVcUxfUHhHdpP6V8CuY1+CYSs9EPJ7iiWTDuXWVIBTU32oJLAnrmAcOwtIzEfPvm+rff5FI/Yhon2pB3VTXhPPEBjYzE5qANanAT4e6tzAVc5f3DUhHaDknwRYfDz86GFvuLtDjeE/UZ9t6OofYoEsCBpYozLAprBvNIQY= DSA #1 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/dsa_2.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAI38Hy/61/O5Bp6yUG8J5XQCeNjRS0xvjlCdzKLyXCueMa+L+X2L/u9PWUsy5SVbTjGgpB8sF6UkCNsV+va7S8zCCHas2MZ7GPlxP6GZBkRPTIFR0N/Pu7wfBzDQz0t0iL4VmxBfTBQv/SxkGWZg+yHihIQP9fwdSAwD/7aVh6ItAAAAFQDSyihIUlINlswM0PJ8wXSti3yIMwAAAIB+oqzaB6ozqs8YxpN5oQOBa/9HEBQEsp8RSIlQmVubXRNgktp42n+Ii1waU9UUk8DX5ahhIeR6B7ojWkqmDAji4SKpoHf4kmr6HvYo85ZSTSx0W4YK/gJHSpDJwhlT52tAfb1JCbWSObjl09B4STv7KedCHcR5oXQvvrV+XoKOSAAAAIAue/EXrs2INw1RfaKNHC0oqOMxmRitv0BFMuNVPo1VDj39CE5kA7AHjwvS1TNeaHtK5Hhgeb6vsmLmNPTOc8xCob0ilyQbt9O0GbONeF2Ge7D2UJyULA/hxql+tCYFIC6yUrmo35fF9XiNisXLoaflk9fjp7ROWWVwnki/jstaQw== DSA #2 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/dsa_3.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAI6lz2Ip9bzE7TGuDD4SjO9S4Ac90gq0h6ai1O06eI8t/Ot2uJ5Jk2QyVr2jvIZHDl/5bwBx7+5oyjlwRoUrAPPD814wf5tU2tSnmdu1Wbf0cBswif5q0r4tevzmopp/AtgH11QHo3u0/pfyJd10qBDLV2FaYSKMmZvyPfZJ0s9pAAAAFQD5Eqjl6Rx2qVePodD9OwAPT0bU6wAAAIAfnDm6csZF0sFaJR3NIJvaYgSGr8s7cqlsk2gLltB/1wOOO2yX+NeEC+B0H93hlMfaUsPa08bwgmYxnavSMqEBpmtPceefJiEd68zwYqXd38f88wyWZ9Z5iwaI/6OVZPHzCbDxOa4ewVTevRNYUKP1xUTZNT8/gSMfZLYPk4T2AQAAAIAUKroozRMyV+3V/rxt0gFnNxRXBKk+9cl3vgsQ7ktkI9cYg7V1T2K0XF21AVMK9gODszy6PBJjV6ruXBV6TRiqIbQauivp3bHHKYsG6wiJNqwdbVwIjfvv8nn1qFoZQLXG3sdONr9NwN8KzrX89OV0BlR2dVM5qqp+YxOXymP9yg== DSA #3 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/dsa_4.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAKvjnFHm0VvMr5h2Zu3nURsxQKGoxm+DCzYDxRYcilK07Cm5c4XTrFbA2X86+9sGs++W7QRMcTJUYIg0a+UtIMtAjwORd6ZPXM2K5dBW+gh1oHyvKi767tWX7I2c+1ZPJDY95mUUfZQUEfdy9eGDSBmw/pSsveQ1ur6XNUh/MtP/AAAAFQDHnXk/9jBJAdce1pHtLWnbdPSGdQAAAIEAm2OLy8tZBfiEO3c3X1yyB/GTcDwrQCqRMDkhnsmrliec3dWkOfNTzu+MrdvF8ymTWLEqPpbMheYtvNyZ3TF0HO5W7aVBpdGZbOdOAIfB+6skqGbI8A5Up1d7dak/bSsqL2r5NjwbDOdq+1hBzzvbl/qjh+sQarV2zHrpKoQaV28AAACANtkBVedBbqIAdphCrN/LbUi9WlyuF9UZz+tlpVLYrj8GJVwnplV2tvOmUw6yP5/pzCimTsao8dpL5PWxm7fKxLWVxA+lEsA4WeC885CiZn8xhdaJOCN+NyJ2bqkz+4VPI7oDGBm0aFwUqJn+M1PiSgvI50XdF2dBsFRTRNY0wzA= DSA #4 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/dsa_5.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBALrFy7w5ihlaOG+qR+6fj+vm5EQaO3qwxgACLcgH+VfShuOG4mkx8qFJmf+OZ3fh5iKngjNZfKtfcqI7zHWdk6378TQfQC52/kbZukjNXOLCpyNkogahcjA00onIoTK1RUDuMW28edAHwPFbpttXDTaqis+8JPMY8hZwsZGENCzTAAAAFQD6+It5vozwGgaN9ROYPMlByhi6jwAAAIBz2mcAC694vNzz9b6614gkX9d9E99PzJYfU1MPkXDziKg7MrjBw7Opd5y1jL09S3iL6lSTlHkKwVKvQ3pOwWRwXXRrKVus4I0STveoApm526jmp6mY0YEtqR98vMJ0v97h1ydt8FikKlihefCsnXVicb8887PXs2Y8C6GuFT3tfQAAAIBbmHtV5tPcrMRDkULhaQ/Whap2VKvT2DUhIHA7lx6oy/KpkltOpxDZOIGUHKqffGbiR7Jh01/y090AY5L2eCf0S2Ytx93+eADwVVpJbFJo6zSwfeey2Gm6L2oA+rCz9zTdmtZoekpD3/RAOQjnJIAPwbs7mXwabZTw4xRtiYIRrw== DSA #5 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/dsa_6.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAIutigAse65TCW6hHDOEGXenE9L4L0talHbs65hj3UUNtWflKdQeXLofqXgW8AwaDKmnuRPrxRoxVNXj84n45wtBEdt4ztmdAZteAbXSnHqpcxME3jDxh3EtxzGPXLs+RUmKPVguraSgo7W2oN7KFx6VM+AcAtxANSTlvDid3s47AAAAFQCd9Q3kkHSLWe77sW0eRaayI45ovwAAAIAw6srGF6xvFasI44Y3r9JJ2K+3ezozl3ldL3p2+p2HG3iWafC4SdV8pB6ZIxKlYAywiiFb3LzH/JweGFq1jtoFDRM3MlYORBevydU4zPz7b5QLDVB0sY4evYtWmg2BFJvoWRfhLnlZVW7h5N8v4fNIwdVmVsw4Ljes7iF2HRGhHgAAAIBDFT3fww2Oby1xUA6G9pDAcVikrQFqp1sJRylNTUyeyQ37SNAGzYxwHJFgQr8gZLdRQ1UW+idYpqVbVNcYFMOiw/zSqK2OfVwPZ9U+TTKdc992ChSup6vJEKM/ZVIyDWDbJr7igQ4ahy7jo9mFvm8ljN926EnspQzCvs0Dxk6tHA== DSA #6 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ecdsa_1.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBF6yQEtD9yBw9gmDRf477WBBzvWhAa0ioBI3nbA4emKykj0RbuQd5C4XdQAEOZGzE7v//FcCjwB2wi+JH5eKkxCtN6CjohDASZ1huoIV2UVyYIicZJEEOg1IWjjphvaxtw== ECDSA #1 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ecdsa_2.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAB8qVcXwgBM92NCmReQlPrZAoui4Bz/mW0VUBFOpHXXW1n+15b/Y7Pc6UBd/ITTZmaBciXY+PWaSBGdwc5GdqGdLgFyJ/QAGrFMPNpVutm/82gNQzlxpNwjbMcKyiZEXzSgnjS6DzMQ0WuSMdzIBXq8OW/Kafxg4ZkU6YqALUXxlQMZuQ== ECDSA #2 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ecdsa_3.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIb3BhJZk+vUQPg5TQc1koIzuGqloCq7wjr9LjlhG24IBeiFHLsdWw74HDlH4DrOmlxToVYk2lTdnjARleRByjk= ECDSA #3 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ecdsa_4.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHZd0OXHIWwK3xnjAdMZ1tojxWycdu38pORO/UX5cqsKMgGCKQVBWWO3TFk1ePkGIE9VMWT1hCGqWRRwYlH+dSE= ECDSA #4 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ecdsa_5.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPIudcagzq4QPtP1jkpje34+0POLB0jwT64hqrbCqhTH2T800KDZ0h2vwlJYa3OP3Oqru9AB5pnuHsKw7mAhUGY= ECDSA #5 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ecdsa_6.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK1wRLyKtvK3Mmhd0XPkKwW4ev1KBVf8J4aG8lESq1TsaqqfOXYGyxMq5pN8fCGiD5UPOqyTYz/ZNzClRhJRHao= ECDSA #6 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ed25519_1.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK9ks7jkua5YWIwByRnnnc6UPJQWI75O0e/UJdPYU1JI ED25519 #1 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ed25519_2.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIBp6PVW0z2o9C4Ukv/JOgmK7QMFe1pD1s3ADFF7IQob ED25519 #2 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ed25519_3.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlYfExtYZAPqYvYdrlpGlSWhh/XNHcH3v3c2JzsVNbB ED25519 #3 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ed25519_4.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDFP8L9REfN/iYy1KIRtFqSCn3V2+vOCpoZYENFGLdOF ED25519 #4 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ed25519_5.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINf63qSV8rD57N+digID8t28WVhd3Yf2K2UhaoG8TsWQ ED25519 #5 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/ed25519_6.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPLW0ZwCkRQldpLa4I5BpwGa/om+WE6OgC8jdVqakt0Z ED25519 #6 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa1_1.pub: -------------------------------------------------------------------------------- 1 | 1024 65537 153895431603677073925890314548566704948446776958334195280085080329934839226701954473292358821568047724356487621573742372399387931887004184139835510820577359977148363519970774657801798872789118894962853659233045778161859413980935372685480527355016624825696983269800574755126132814333241868538220824608980319407 RSA1 #1 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa1_2.pub: -------------------------------------------------------------------------------- 1 | 1024 65537 135970715082947442639683969597180728933388298633245835186618852623800675939308729462220235058285909679252157995530180587329132927339620517781785310829060832352381015614725360278571924286986474946772141568893116432268565829418506866604294073334978275702221949783314402806080929601995102334442541344606109853641 RSA1 #2 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa1_3.pub: -------------------------------------------------------------------------------- 1 | 1024 65537 125895605498029643697051635076028105429632810811904702876152645261610759866299221305725069141163240694267669117205342283569102183636228981857946763978553664895308762890072813014496700601576921921752482059207749978374872713540759920335553799711267170948655579130584031555334229966603000896364091459595522912269 RSA1 #3 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa1_4.pub: -------------------------------------------------------------------------------- 1 | 1024 65537 174143366122697048196335388217056770310345753698079464367148030836533360510864881734142526411160017107552815906024399248049666856133771656680462456979369587903909343046704480897527203474513676654933090991684252819423129896444427656841613263783484827101210734799449281639493127615902427443211183258155381810593 RSA1 #4 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa1_5.pub: -------------------------------------------------------------------------------- 1 | 1024 65537 127931411493401587586867047972295564331543694182352197506125410692673654572057908999642645524647232712160516076508316152810117209181150078352725299319149726341058893406440426414316276977768958023952319602422835879783057966985348561111880658922724668687074412548487722084792283453716871417610020757212399252171 RSA1 #5 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa1_6.pub: -------------------------------------------------------------------------------- 1 | 1024 65537 140883028436203600354693376066567741282115117509696517282419557936340193768851493584179972504103033755515036493433917203732876685813283050574208967197963391667532902202382549275760997891673884333346000558018002659506756213191532156293935482587878596032743105911487673274674568768638010598205190227631909167257 RSA1 #6 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa_1.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDg4hB4vAZHJ0PVRiJajOv/GlytFWNpv5/9xgB9+5BIbvp8LOrFZ5D9K0Gsmwpd4G4rfaAz8j896DhMArg0vtkilIPPGt/6VzWMERgvaIQPJ/IE99X3+fjcAG56oAWwy29JX10lQMzBPU6XJIaN/zqpkb6qUBiAHBdLpxrFBBU0/w== RSA #1 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa_2.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDmbUhNabB5AmBDX6GNHZ3lbn7pRxqfpW+f53QqNGlK0sLV+0gkMIrOfUp1kdE2ZLE6tfzdicatj/RlH6/wuo4yyYb+Pyx3G0vxdmAIiA4aANq38XweDucBC0TZkRWVHK+Gs5V/uV0z7N0axJvkkJujMLvST3CRiiWwlficBc6yVQ== RSA #2 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa_3.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDX8F93W3SH4ZSus4XUQ2cw9dqcuyUETTlKEeGv3zlknV3YCoe2Mp04naDhiuwj8sOsytrZSESzLY1ZEyzrjxE6ZFVv8NKgck/AbRjcwlRFOcx9oKUxOrXRa0IoXlTq0kyjKCJfaHBKnGitZThknCPTbVmpATkm5xx6J0WEDozfoQ== RSA #3 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa_4.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDI8AdjBAozcdRnIikVlt69iyDHKyrtxmpdkbRy9bWaL86OH+PTmLUk5e+T/ufiakpeE2pm0hkE3e4Sh/FsY+rsQdRoraWVNFfchcMeVlKvuy5RZN0ElvmaQebOJUeNeBn2LLw8aL8bJ4CP/bQRKrmrSSqjz3+4H9YNVyyk1OGBPQ== RSA #4 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa_5.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC/C15Q4sfnk7BZff1er8bscay+5s51oD4eWArlHWMK/ZfYeeTAccTy+7B7Jv+MS4nKCpflrvJI2RQz4kS8vF0ATdBbi4jeWefStlHNg0HLhnCY7NAfDIlRdaN9lm3Pqm2vmr+CkqwcJaSpycDg8nPN9yNAuD6pv7NDuUnECezojQ== RSA #5 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/testdata/rsa_6.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQClu/3I6GG1Ai89Imnw0vXmWJ2OW0ftQwRrsbIAD0qzLFYpkJ76QWnzpCehvK9u0L5hcw7z2Y6mRLcSBsqONc+HVU73Qi7M4zHRvtjprPs3SOyLpf0J9sL1WiHBDwg2P0miHMCdqHDd5nVXkJB2d4eeecmgezGLa29NOHZjbza5yw== RSA #6 2 | -------------------------------------------------------------------------------- /regress/unittests/hostkeys/tests.c: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: tests.c,v 1.1 2015/02/16 22:18:34 djm Exp $ */ 2 | /* 3 | * Regress test for known_hosts-related API. 4 | * 5 | * Placed in the public domain 6 | */ 7 | 8 | void tests(void); 9 | void test_iterate(void); /* test_iterate.c */ 10 | 11 | void 12 | tests(void) 13 | { 14 | test_iterate(); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /regress/unittests/kex/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.15 2024/05/19 19:10:01 anton Exp $ 2 | 3 | PROG=test_kex 4 | SRCS=tests.c test_kex.c test_proposal.c 5 | 6 | # From usr.bin/ssh 7 | SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c 8 | SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c 9 | SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c 10 | SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c 11 | SRCS+=addr.c addrmatch.c bitmap.c packet.c dispatch.c canohost.c ssh_api.c 12 | SRCS+=compat.c ed25519.c hash.c 13 | SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c 14 | SRCS+=ssh-ed25519-sk.c sk-usbhid.c 15 | 16 | SRCS+= kex.c 17 | SRCS+= kex-names.c 18 | SRCS+= dh.c 19 | SRCS+= kexdh.c 20 | SRCS+= kexecdh.c 21 | SRCS+= kexgex.c 22 | SRCS+= kexgexc.c 23 | SRCS+= kexgexs.c 24 | SRCS+= kexc25519.c 25 | SRCS+= smult_curve25519_ref.c 26 | SRCS+= kexgen.c 27 | SRCS+= kexsntrup761x25519.c 28 | SRCS+= sntrup761.c 29 | SRCS+= utf8.c 30 | 31 | SRCS+=digest-openssl.c 32 | #SRCS+=digest-libc.c 33 | 34 | REGRESS_TARGETS=run-regress-${PROG} 35 | 36 | run-regress-${PROG}: ${PROG} 37 | env ${TEST_ENV} ./${PROG} 38 | 39 | .include 40 | 41 | LDADD+=-lz 42 | -------------------------------------------------------------------------------- /regress/unittests/kex/tests.c: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: tests.c,v 1.3 2023/03/06 12:15:47 dtucker Exp $ */ 2 | /* 3 | * Placed in the public domain 4 | */ 5 | 6 | #include "../test_helper/test_helper.h" 7 | 8 | void kex_tests(void); 9 | void kex_proposal_tests(void); 10 | void kex_proposal_populate_tests(void); 11 | 12 | void 13 | tests(void) 14 | { 15 | kex_tests(); 16 | kex_proposal_tests(); 17 | kex_proposal_populate_tests(); 18 | } 19 | -------------------------------------------------------------------------------- /regress/unittests/match/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.5 2021/01/09 12:24:31 dtucker Exp $ 2 | 3 | PROG=test_match 4 | SRCS=tests.c 5 | 6 | # From usr.bin/ssh 7 | SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c 8 | SRCS+=match.c misc.c log.c uidswap.c fatal.c ssherr.c addrmatch.c xmalloc.c 9 | SRCS+=cleanup.c atomicio.c addr.c 10 | 11 | REGRESS_TARGETS=run-regress-${PROG} 12 | 13 | run-regress-${PROG}: ${PROG} 14 | env ${TEST_ENV} ./${PROG} 15 | 16 | .include 17 | -------------------------------------------------------------------------------- /regress/unittests/misc/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.9 2023/01/06 02:59:50 djm Exp $ 2 | 3 | PROG=test_misc 4 | SRCS=tests.c 5 | SRCS+= test_convtime.c 6 | SRCS+= test_expand.c 7 | SRCS+= test_parse.c 8 | SRCS+= test_argv.c 9 | SRCS+= test_strdelim.c 10 | SRCS+= test_hpdelim.c 11 | SRCS+= test_ptimeout.c 12 | 13 | # From usr.bin/ssh/Makefile.inc 14 | SRCS+= sshbuf.c 15 | SRCS+= sshbuf-getput-basic.c 16 | SRCS+= sshbuf-misc.c 17 | SRCS+= ssherr.c 18 | SRCS+= log.c 19 | SRCS+= xmalloc.c 20 | SRCS+= misc.c 21 | SRCS+= match.c 22 | SRCS+= addr.c 23 | SRCS+= addrmatch.c 24 | 25 | # From usr.bin/ssh/sshd/Makefile 26 | SRCS+= atomicio.c cleanup.c fatal.c 27 | 28 | REGRESS_TARGETS=run-regress-${PROG} 29 | 30 | run-regress-${PROG}: ${PROG} 31 | env ${TEST_ENV} ./${PROG} 32 | 33 | .include 34 | -------------------------------------------------------------------------------- /regress/unittests/misc/tests.c: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: tests.c,v 1.10 2023/01/06 02:59:50 djm Exp $ */ 2 | /* 3 | * Regress test for misc helper functions. 4 | * 5 | * Placed in the public domain. 6 | */ 7 | 8 | #include "includes.h" 9 | 10 | #include 11 | #include 12 | #ifdef HAVE_STDINT_H 13 | #include 14 | #endif 15 | #include 16 | #include 17 | 18 | #include "../test_helper/test_helper.h" 19 | 20 | #include "log.h" 21 | #include "misc.h" 22 | 23 | void test_parse(void); 24 | void test_convtime(void); 25 | void test_expand(void); 26 | void test_argv(void); 27 | void test_strdelim(void); 28 | void test_hpdelim(void); 29 | void test_ptimeout(void); 30 | 31 | void 32 | tests(void) 33 | { 34 | test_parse(); 35 | test_convtime(); 36 | test_expand(); 37 | test_argv(); 38 | test_strdelim(); 39 | test_hpdelim(); 40 | test_ptimeout(); 41 | } 42 | -------------------------------------------------------------------------------- /regress/unittests/sshbuf/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.10 2021/01/09 12:24:31 dtucker Exp $ 2 | 3 | # $OpenBSD: Makefile,v 1.8 2020/01/26 00:09:50 djm Exp $ 4 | 5 | PROG=test_sshbuf 6 | SRCS=tests.c 7 | SRCS+=test_sshbuf.c 8 | SRCS+=test_sshbuf_getput_basic.c 9 | SRCS+=test_sshbuf_getput_crypto.c 10 | SRCS+=test_sshbuf_misc.c 11 | SRCS+=test_sshbuf_fuzz.c 12 | SRCS+=test_sshbuf_getput_fuzz.c 13 | SRCS+=test_sshbuf_fixed.c 14 | 15 | # From usr.bin/ssh 16 | SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c 17 | SRCS+=sshbuf-io.c atomicio.c misc.c xmalloc.c log.c fatal.c ssherr.c cleanup.c 18 | SRCS+=match.c addr.c addrmatch.c 19 | 20 | run-regress-${PROG}: ${PROG} 21 | env ${TEST_ENV} ./${PROG} ${UNITTEST_ARGS} 22 | 23 | -------------------------------------------------------------------------------- /regress/unittests/sshbuf/tests.c: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: tests.c,v 1.1 2014/04/30 05:32:00 djm Exp $ */ 2 | /* 3 | * Regress test for sshbuf.h buffer API 4 | * 5 | * Placed in the public domain 6 | */ 7 | 8 | #include "../test_helper/test_helper.h" 9 | 10 | void sshbuf_tests(void); 11 | void sshbuf_getput_basic_tests(void); 12 | void sshbuf_getput_crypto_tests(void); 13 | void sshbuf_misc_tests(void); 14 | void sshbuf_fuzz_tests(void); 15 | void sshbuf_getput_fuzz_tests(void); 16 | void sshbuf_fixed(void); 17 | 18 | void 19 | tests(void) 20 | { 21 | sshbuf_tests(); 22 | sshbuf_getput_basic_tests(); 23 | #ifdef WITH_OPENSSL 24 | sshbuf_getput_crypto_tests(); 25 | #endif 26 | sshbuf_misc_tests(); 27 | sshbuf_fuzz_tests(); 28 | sshbuf_getput_fuzz_tests(); 29 | sshbuf_fixed(); 30 | } 31 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.12 2023/01/15 23:35:10 djm Exp $ 2 | 3 | PROG=test_sshkey 4 | SRCS=tests.c test_sshkey.c test_file.c test_fuzz.c common.c 5 | 6 | # From usr.bin/ssh 7 | SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c 8 | SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c 9 | SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c 10 | SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c 11 | SRCS+=addr.c addrmatch.c bitmap.c 12 | SRCS+=ed25519.c hash.c 13 | SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c 14 | SRCS+=ssh-ed25519-sk.c sk-usbhid.c 15 | 16 | SRCS+=digest-openssl.c 17 | #SRCS+=digest-libc.c 18 | SRCS+=utf8.c 19 | 20 | REGRESS_TARGETS=run-regress-${PROG} 21 | 22 | run-regress-${PROG}: ${PROG} 23 | env ${TEST_ENV} ./${PROG} ${UNITTEST_ARGS} -d ${.CURDIR}/testdata 24 | 25 | .include 26 | 27 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/common.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: common.h,v 1.2 2018/09/13 09:03:20 djm Exp $ */ 2 | /* 3 | * Helpers for key API tests 4 | * 5 | * Placed in the public domain 6 | */ 7 | 8 | /* Load a binary file into a buffer */ 9 | struct sshbuf *load_file(const char *name); 10 | 11 | /* Load a text file into a buffer */ 12 | struct sshbuf *load_text_file(const char *name); 13 | 14 | /* Load a bignum from a file */ 15 | BIGNUM *load_bignum(const char *name); 16 | 17 | /* Accessors for key components */ 18 | const BIGNUM *rsa_n(struct sshkey *k); 19 | const BIGNUM *rsa_e(struct sshkey *k); 20 | const BIGNUM *rsa_p(struct sshkey *k); 21 | const BIGNUM *rsa_q(struct sshkey *k); 22 | const BIGNUM *dsa_g(struct sshkey *k); 23 | const BIGNUM *dsa_pub_key(struct sshkey *k); 24 | const BIGNUM *dsa_priv_key(struct sshkey *k); 25 | 26 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBvAIBAAKBgQD6kutNFRsHTwEAv6d39Lhsqy1apdHBZ9c2HfyRr7WmypyGIy2m 3 | Ka43vzXI8CNwmRSYs+A6d0vJC7Pl+f9QzJ/04NWOA+MiwfurwrR3CRe61QRYb8Py 4 | mcHOxueHs95IcjrbIPNn86cjnPP5qvv/guUzCjuww4zBdJOXpligrGt2XwIVAKMD 5 | /50qQy7j8JaMk+1+Xtg1pK01AoGBAO7l9QVVbSSoy5lq6cOtvpf8UlwOa6+zBwbl 6 | o4gmFd1RwX1yWkA8kQ7RrhCSg8Hc6mIGnKRgKRli/3LgbSfZ0obFJehkRtEWtN4P 7 | h8fVUeS74iQbIwFQeKlYHIlNTRoGtAbdi3nHdV+BBkEQc1V3rjqYqhjOoz/yNsgz 8 | LND26HrdAoGBAOdXpyfmobEBaOqZAuvgj1P0uhjG2P31Ufurv22FWPBU3A9qrkxb 9 | OXwE0LwvjCvrsQV/lrYhJz/tiys40VeahulWZE5SAHMXGIf95LiLSgaXMjko7joo 10 | t+LK84ltLymwZ4QMnYjnZSSclf1UuyQMcUtb34+I0u9Ycnyhp2mSFsQtAhRYIbQ5 11 | KfXsZuBPuWe5FJz3ldaEgw== 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1-cert.fp: -------------------------------------------------------------------------------- 1 | SHA256:kOLgXSoAT8O5T6r36n5NJUYigbux1d7gdH/rmWiJm6s 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1-cert.pub: -------------------------------------------------------------------------------- 1 | ssh-dss-cert-v01@openssh.com AAAAHHNzaC1kc3MtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgdTlbNU9Hn9Qng3FHxwH971bxCIoq1ern/QWFFDWXgmYAAACBAPqS600VGwdPAQC/p3f0uGyrLVql0cFn1zYd/JGvtabKnIYjLaYprje/NcjwI3CZFJiz4Dp3S8kLs+X5/1DMn/Tg1Y4D4yLB+6vCtHcJF7rVBFhvw/KZwc7G54ez3khyOtsg82fzpyOc8/mq+/+C5TMKO7DDjMF0k5emWKCsa3ZfAAAAFQCjA/+dKkMu4/CWjJPtfl7YNaStNQAAAIEA7uX1BVVtJKjLmWrpw62+l/xSXA5rr7MHBuWjiCYV3VHBfXJaQDyRDtGuEJKDwdzqYgacpGApGWL/cuBtJ9nShsUl6GRG0Ra03g+Hx9VR5LviJBsjAVB4qVgciU1NGga0Bt2Lecd1X4EGQRBzVXeuOpiqGM6jP/I2yDMs0Pboet0AAACBAOdXpyfmobEBaOqZAuvgj1P0uhjG2P31Ufurv22FWPBU3A9qrkxbOXwE0LwvjCvrsQV/lrYhJz/tiys40VeahulWZE5SAHMXGIf95LiLSgaXMjko7joot+LK84ltLymwZ4QMnYjnZSSclf1UuyQMcUtb34+I0u9Ycnyhp2mSFsQtAAAAAAAAAAYAAAACAAAABmp1bGl1cwAAABIAAAAFaG9zdDEAAAAFaG9zdDIAAAAANowB8AAAAABNHmBwAAAAAAAAAAAAAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACBThupGO0X+FLQhbz8CoKPwc7V3JNsQuGtlsgN+F7SMGQAAAFMAAAALc3NoLWVkMjU1MTkAAABAh/z1LIdNL1b66tQ8t9DY9BTB3BQKpTKmc7ezyFKLwl96yaIniZwD9Ticdbe/8i/Li3uCFE3EAt8NAIv9zff8Bg== DSA test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1.fp: -------------------------------------------------------------------------------- 1 | SHA256:kOLgXSoAT8O5T6r36n5NJUYigbux1d7gdH/rmWiJm6s 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1.fp.bb: -------------------------------------------------------------------------------- 1 | xetag-todiz-mifah-torec-mynyv-cyvit-gopon-pygag-rupic-cenav-bexax 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1.param.g: -------------------------------------------------------------------------------- 1 | 00eee5f505556d24a8cb996ae9c3adbe97fc525c0e6bafb30706e5a3882615dd51c17d725a403c910ed1ae109283c1dcea62069ca460291962ff72e06d27d9d286c525e86446d116b4de0f87c7d551e4bbe2241b23015078a9581c894d4d1a06b406dd8b79c7755f81064110735577ae3a98aa18cea33ff236c8332cd0f6e87add 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1.param.priv: -------------------------------------------------------------------------------- 1 | 5821b43929f5ec66e04fb967b9149cf795d68483 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1.param.pub: -------------------------------------------------------------------------------- 1 | 00e757a727e6a1b10168ea9902ebe08f53f4ba18c6d8fdf551fbabbf6d8558f054dc0f6aae4c5b397c04d0bc2f8c2bebb1057f96b621273fed8b2b38d1579a86e956644e520073171887fde4b88b4a0697323928ee3a28b7e2caf3896d2f29b067840c9d88e765249c95fd54bb240c714b5bdf8f88d2ef58727ca1a7699216c42d 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAPqS600VGwdPAQC/p3f0uGyrLVql0cFn1zYd/JGvtabKnIYjLaYprje/NcjwI3CZFJiz4Dp3S8kLs+X5/1DMn/Tg1Y4D4yLB+6vCtHcJF7rVBFhvw/KZwc7G54ez3khyOtsg82fzpyOc8/mq+/+C5TMKO7DDjMF0k5emWKCsa3ZfAAAAFQCjA/+dKkMu4/CWjJPtfl7YNaStNQAAAIEA7uX1BVVtJKjLmWrpw62+l/xSXA5rr7MHBuWjiCYV3VHBfXJaQDyRDtGuEJKDwdzqYgacpGApGWL/cuBtJ9nShsUl6GRG0Ra03g+Hx9VR5LviJBsjAVB4qVgciU1NGga0Bt2Lecd1X4EGQRBzVXeuOpiqGM6jP/I2yDMs0Pboet0AAACBAOdXpyfmobEBaOqZAuvgj1P0uhjG2P31Ufurv22FWPBU3A9qrkxbOXwE0LwvjCvrsQV/lrYhJz/tiys40VeahulWZE5SAHMXGIf95LiLSgaXMjko7joot+LK84ltLymwZ4QMnYjnZSSclf1UuyQMcUtb34+I0u9Ycnyhp2mSFsQt DSA test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_1_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,BC8386C373B22EB7F00ADC821D5D8BE9 4 | 5 | +HDV2DQ09sxrIAeXTz9r3YFuPRa2hk1+NGcr3ETkXbC6KiZ14wpTnGTloKwaQjIW 6 | eXTa9mpCOWAoohgvsVb+hOuOlP7AfeHu1IXV4EAS+GDpkiV5UxlCXXwqlD75Buu4 7 | wwDd/p4SWzILH3WGjDk5JIXoxWNY13LHwC7Q6gtGJx4AicUG7YBRTXMIBDa/Kh77 8 | 6o2rFETKmp4VHBvHbakmiETfptdM8bbWxKWeY2vakThyESgeofsLoTOQCIwlEfJC 9 | s2D/KYL65C8VbHYgIoSLTQnooO45DDyxIuhCqP+H23mhv9vB1Od3nc2atgHj/XFs 10 | dcOPFkF/msDRYqxY3V0AS6+jpKwFodZ7g/hyGcyPxOkzlJVuKoKuH6P5PyQ69Gx0 11 | iqri0xEPyABr7kGlXNrjjctojX+B4WwSnjg/2euXXWFXCRalIdA7ErATTiQbGOx7 12 | Vd6Gn8PZbSy1MkqEDrZRip0pfAFJYI/8GXPC75BpnRsrVlfhtrngbW+kBP35LzaN 13 | l2K+RQ3gSB3iFoqNb1Kuu6T5MZlyVl5H2dVlJSeb1euQ2OycXdDoFTyJ4AiyWS7w 14 | Vlh8zeJnso5QRDjMwx99pZilbbuFGSLsahiGEveFc6o= 15 | -----END DSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_2: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBvQIBAAKBgQCbyPXNdHeLsjpobPVCMkfagBkt15Zsltqf/PGNP1y1cuz7rsTX 3 | ZekQwUkSTNm5coqXe+ZOw2O4tjobJDd60I1/VPgaB0NYlQR9Hn87M284WD4f6VY+ 4 | aunHmP134a8ybG5G4NqVNF3ihvxAR2pVITqb7kE46r2uYZNcNlHI8voRCwIVAMcP 5 | bwqFNsQbH5pJyZW30wj4KVZ3AoGBAIK98BVeKQVf8qDFqx9ovMuNgVSxpd+N0Yta 6 | 5ZEy1OI2ziu5RhjueIM2K7Gq2Mnp38ob1AM53BUxqlcBJaHEDa6rj6yvuMgW9oCJ 7 | dImBM8sIFxfBbXNbpJiMaDwa6WyT84OkpDE6uuAepTMnWOUWkUVkAiyokHDUGXkG 8 | GyoQblbXAoGBAIsf7TaZ804sUWwRV0wI8DYx+hxD5QdrfYPYMtL2fHn3lICimGt0 9 | FTtUZ25jKg0E0DMBPdET6ZEHB3ZZkR8hFoUzZhdnyJMu3UjVtgaV88Ue3PrXxchk 10 | 0W2jHPaAgQU3JIWzo8HFIFqvC/HEL+EyW3rBTY2uXM3XGI+YcWSA4ZrZAhUAsY2f 11 | bDFNzgZ4DaZ9wLRzTgOswPU= 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_2.fp: -------------------------------------------------------------------------------- 1 | SHA256:ecwhWcXgpdBxZ2e+OjpRRY7dqXHHCD62BGtoVQQBwCk 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_2.fp.bb: -------------------------------------------------------------------------------- 1 | xeser-megad-pocan-rozit-belup-tapoh-fapif-kyvit-vonav-cehab-naxax 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/dsa_2.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAJvI9c10d4uyOmhs9UIyR9qAGS3XlmyW2p/88Y0/XLVy7PuuxNdl6RDBSRJM2blyipd75k7DY7i2OhskN3rQjX9U+BoHQ1iVBH0efzszbzhYPh/pVj5q6ceY/XfhrzJsbkbg2pU0XeKG/EBHalUhOpvuQTjqva5hk1w2Ucjy+hELAAAAFQDHD28KhTbEGx+aScmVt9MI+ClWdwAAAIEAgr3wFV4pBV/yoMWrH2i8y42BVLGl343Ri1rlkTLU4jbOK7lGGO54gzYrsarYyenfyhvUAzncFTGqVwElocQNrquPrK+4yBb2gIl0iYEzywgXF8Ftc1ukmIxoPBrpbJPzg6SkMTq64B6lMydY5RaRRWQCLKiQcNQZeQYbKhBuVtcAAACBAIsf7TaZ804sUWwRV0wI8DYx+hxD5QdrfYPYMtL2fHn3lICimGt0FTtUZ25jKg0E0DMBPdET6ZEHB3ZZkR8hFoUzZhdnyJMu3UjVtgaV88Ue3PrXxchk0W2jHPaAgQU3JIWzo8HFIFqvC/HEL+EyW3rBTY2uXM3XGI+YcWSA4ZrZ DSA test key #2 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIPPNyUAnjvFr+eT/7t/IyjuQQd/aLFiTY92LB9gIjyrMoAoGCCqGSM49 3 | AwEHoUQDQgAEDFlblkOrW9ydKVhtM+9AY3c9saBE7SG3lFx38nBavkADDaI9jh3/ 4 | kvG/Jt9vpm22qwoklTCGDfzCkXkIKaWlBw== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1-cert.fp: -------------------------------------------------------------------------------- 1 | SHA256:8ty77fOpABat1y88aNdclQTfU+lVvWe7jYZGw8VYtfg 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1-cert.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256-cert-v01@openssh.com AAAAKGVjZHNhLXNoYTItbmlzdHAyNTYtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgOtFRnMigkGliaYfPmX5IidVWfV3tRH6lqRXv0l8bvKoAAAAIbmlzdHAyNTYAAABBBAxZW5ZDq1vcnSlYbTPvQGN3PbGgRO0ht5Rcd/JwWr5AAw2iPY4d/5Lxvybfb6ZttqsKJJUwhg38wpF5CCmlpQcAAAAAAAAABwAAAAIAAAAGanVsaXVzAAAAEgAAAAVob3N0MQAAAAVob3N0MgAAAAA2jAHwAAAAAE0eYHAAAAAAAAAAAAAAAAAAAABoAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAxZW5ZDq1vcnSlYbTPvQGN3PbGgRO0ht5Rcd/JwWr5AAw2iPY4d/5Lxvybfb6ZttqsKJJUwhg38wpF5CCmlpQcAAABkAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAABJAAAAIHbxGwTnue7KxhHXGFvRcxBnekhQ3Qx84vV/Vs4oVCrpAAAAIQC7vk2+d14aS7td7kVXLQn392oALjEBzMZoDvT1vT/zOA== ECDSA test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1.fp: -------------------------------------------------------------------------------- 1 | SHA256:8ty77fOpABat1y88aNdclQTfU+lVvWe7jYZGw8VYtfg 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1.fp.bb: -------------------------------------------------------------------------------- 1 | xibah-vocun-sogyn-byhen-rivem-hegyh-luneh-dozyr-vatyf-dufid-myxyx 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1.param.curve: -------------------------------------------------------------------------------- 1 | prime256v1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1.param.priv: -------------------------------------------------------------------------------- 1 | 00f3cdc940278ef16bf9e4ffeedfc8ca3b9041dfda2c589363dd8b07d8088f2acc 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1.param.pub: -------------------------------------------------------------------------------- 1 | 040c595b9643ab5bdc9d29586d33ef4063773db1a044ed21b7945c77f2705abe40030da23d8e1dff92f1bf26df6fa66db6ab0a249530860dfcc291790829a5a507 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAxZW5ZDq1vcnSlYbTPvQGN3PbGgRO0ht5Rcd/JwWr5AAw2iPY4d/5Lxvybfb6ZttqsKJJUwhg38wpF5CCmlpQc= ECDSA test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_1_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,7BA38DE00F67851E4207216809C3BB15 4 | 5 | 8QkFoZHQkj9a2mt032sp+WKaJ1fwteqWDd4RpAW9OzDgqzMx1QO43qJgBDTfhzjt 6 | M2Q8YfiGjfBEYpg4kCbacfcV68DEV4z6Ll7rIzzzO7OfWUNL++brD64vKx4z6f46 7 | +sn4nbZTXilpkzi/nmPDVzrNmTSywA8T7Yf0QcBUxks= 8 | -----END EC PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_2: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIHcAgEBBEIBqBtN7e6Essd3dlsgISViPCXXC0atlNkGtoMgSQdBTKVUfeJOi4lc 3 | RZaXJdXnqWUqI/KEsH8h8QN4YcB8ugmAcc+gBwYFK4EEACOhgYkDgYYABAHZ2VNy 4 | oDedBwqsdzY+kkNptc9DrtRCVmO6cULLj+691MhItqVqTMJbTFlI4MnAg9PoGTF/ 5 | 0KmLJfy8vSffXGKqqwGKcFNtd1XCo+7Qu9tXbxron9g6Dmu7y8jaLkixcwZwnwLs 6 | 6GmA9qZGuiAfOGV0Gf9/u98sr+vikOa4Ow5JFDTw5g== 7 | -----END EC PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_2.fp: -------------------------------------------------------------------------------- 1 | SHA256:ed8YniRHA6qCrErCRnzrWxPHxYuA62a+CAFYUVxJgaI 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_2.fp.bb: -------------------------------------------------------------------------------- 1 | xufag-danul-putub-mokin-pugaz-covid-dofag-nihuz-sysab-genar-zaxyx 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_2.param.curve: -------------------------------------------------------------------------------- 1 | secp521r1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_2.param.priv: -------------------------------------------------------------------------------- 1 | 01a81b4dedee84b2c777765b202125623c25d70b46ad94d906b683204907414ca5547de24e8b895c45969725d5e7a9652a23f284b07f21f1037861c07cba098071cf 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_2.param.pub: -------------------------------------------------------------------------------- 1 | 0401d9d95372a0379d070aac77363e924369b5cf43aed4425663ba7142cb8feebdd4c848b6a56a4cc25b4c5948e0c9c083d3e819317fd0a98b25fcbcbd27df5c62aaab018a70536d7755c2a3eed0bbdb576f1ae89fd83a0e6bbbcbc8da2e48b17306709f02ece86980f6a646ba201f38657419ff7fbbdf2cafebe290e6b83b0e491434f0e6 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_2.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAHZ2VNyoDedBwqsdzY+kkNptc9DrtRCVmO6cULLj+691MhItqVqTMJbTFlI4MnAg9PoGTF/0KmLJfy8vSffXGKqqwGKcFNtd1XCo+7Qu9tXbxron9g6Dmu7y8jaLkixcwZwnwLs6GmA9qZGuiAfOGV0Gf9/u98sr+vikOa4Ow5JFDTw5g== ECDSA test key #2 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_n: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS 3 | 1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQQMWVuWQ6tb3J0pWG0z70Bjdz2xoETt 4 | IbeUXHfycFq+QAMNoj2OHf+S8b8m32+mbbarCiSVMIYN/MKReQgppaUHAAAAoFrmmZBa5p 5 | mQAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAxZW5ZDq1vcnSlY 6 | bTPvQGN3PbGgRO0ht5Rcd/JwWr5AAw2iPY4d/5Lxvybfb6ZttqsKJJUwhg38wpF5CCmlpQ 7 | cAAAAhAPPNyUAnjvFr+eT/7t/IyjuQQd/aLFiTY92LB9gIjyrMAAAAAAECAwQFBgc= 8 | -----END OPENSSH PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_n_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABC4UwEov5 3 | z0RrCm7AMCxbuiAAAAEAAAAAEAAABoAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlz 4 | dHAyNTYAAABBBAxZW5ZDq1vcnSlYbTPvQGN3PbGgRO0ht5Rcd/JwWr5AAw2iPY4d/5Lxvy 5 | bfb6ZttqsKJJUwhg38wpF5CCmlpQcAAACgbCnAklQTHrf5qiHiMxKYwQJ7k/X9mp4fXD4v 6 | xUbgNZiXSxN26mn8mC2rH+WA6Lk3CexR/hrtLI2ndpBsYu1h6HhVkOwwm3Kd/PMKArCupW 7 | l6sYEabrT0EghXR/3aDEZvj79hgKSdu3RpayLvMdbCR8k1cg0/mDmR9hicWfeJ61n/IH05 8 | tUR268+0BVRW9kDhh/cuv8tVY4L09jCCQ6CpsA== 9 | -----END OPENSSH PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk1: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAfwAAACJzay1lY2 3 | RzYS1zaGEyLW5pc3RwMjU2QG9wZW5zc2guY29tAAAACG5pc3RwMjU2AAAAQQRnVT5Cji1D 4 | Ge2+q2X0vATh6LYnODV+DJrshJorr5GnipW29RfuaDXs0WB6XBej9dOLazVRDjQrtV19Qg 5 | O6cfkFAAAABHNzaDoAAAGQuPdnP7j3Zz8AAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBv 6 | cGVuc3NoLmNvbQAAAAhuaXN0cDI1NgAAAEEEZ1U+Qo4tQxntvqtl9LwE4ei2Jzg1fgya7I 7 | SaK6+Rp4qVtvUX7mg17NFgelwXo/XTi2s1UQ40K7VdfUIDunH5BQAAAARzc2g6AQAAAOMt 8 | LS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KTUhjQ0FRRUVJRURmVFB4YzA0alN5Zk 9 | Z5NlhoV1pTVlpzcnU5ZFlaSVpTOWhjeVFhcDlVT29Bb0dDQ3FHU000OQpBd0VIb1VRRFFn 10 | QUVaMVUrUW80dFF4bnR2cXRsOUx3RTRlaTJKemcxZmd5YTdJU2FLNitScDRxVnR2VVg3bW 11 | cxCjdORmdlbHdYby9YVGkyczFVUTQwSzdWZGZVSUR1bkg1QlE9PQotLS0tLUVORCBFQyBQ 12 | UklWQVRFIEtFWS0tLS0tCgAAAAAAAAAURUNEU0EtU0sgdGVzdCBrZXkgIzEBAgMEBQ== 13 | -----END OPENSSH PRIVATE KEY----- 14 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk1-cert.fp: -------------------------------------------------------------------------------- 1 | SHA256:Go7HO0CVPYG+BSDSk9ZUJBKGSrtBExp6obTa9iqzIUo 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk1-cert.pub: -------------------------------------------------------------------------------- 1 | sk-ecdsa-sha2-nistp256-cert-v01@openssh.com AAAAK3NrLWVjZHNhLXNoYTItbmlzdHAyNTYtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgE012YoSBE9hEC2FRzblcSx784JNo2A4g611A7I75YMMAAAAIbmlzdHAyNTYAAABBBGdVPkKOLUMZ7b6rZfS8BOHotic4NX4MmuyEmiuvkaeKlbb1F+5oNezRYHpcF6P104trNVEONCu1XX1CA7px+QUAAAAEc3NoOgAAAAAAAAAHAAAAAgAAAAZqdWxpdXMAAAASAAAABWhvc3QxAAAABWhvc3QyAAAAADaLg2AAAAAATR3h4AAAAAAAAAAAAAAAAAAAAGgAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAAhuaXN0cDI1NgAAAEEEAlTtPiWUHubBeCys4Xp0QF91dYARpkyqtCnzg10HRS+ZDgkMrSUvPPG+Ge8iqtnB951MBxDq9FqDFIkhQBYXDAAAAGQAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAEkAAAAhALY+eXRJjVGnMk38Sm5S+H5CloNq757ypsoxt+WYoadtAAAAIA42/mAhUfLij1GY7wl+OFrI+icB/t4tGiEUZmhx6Foo ECDSA-SK test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk1.fp: -------------------------------------------------------------------------------- 1 | SHA256:Go7HO0CVPYG+BSDSk9ZUJBKGSrtBExp6obTa9iqzIUo 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk1.fp.bb: -------------------------------------------------------------------------------- 1 | xovem-sacac-dageg-vovoc-symyz-bozal-cibiv-cyvat-vylyn-romib-hoxax 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk1.pub: -------------------------------------------------------------------------------- 1 | sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBGdVPkKOLUMZ7b6rZfS8BOHotic4NX4MmuyEmiuvkaeKlbb1F+5oNezRYHpcF6P104trNVEONCu1XX1CA7px+QUAAAAEc3NoOg== ECDSA-SK test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk1_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABB6vcJVx2 3 | cPc7yYRROup8VnAAAAEAAAAAEAAAB/AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3Bl 4 | bnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBGdVPkKOLUMZ7b6rZfS8BOHotic4NX4MmuyEmi 5 | uvkaeKlbb1F+5oNezRYHpcF6P104trNVEONCu1XX1CA7px+QUAAAAEc3NoOgAAAZBrvCxe 6 | xFz0bvzXwaPhrUHBeNCoZy/wNKDx0kxlxUPuA+lgOvy5l3lT3yxxd0qj5PQB+NTcuz8AAE 7 | 1f7aSWQNZSifox3COsBGoHV9C8i+glcxiBKheAZD+EBnRGjG8kbcaLhuYDW/I39qNe8lHW 8 | YSDjmvsT55Hy0IAtVRAXizDoXKNdFPTZisC67WyOSJ3ED7Fy4bfT4ApbvhoFTwjikZBEhy 9 | LOad1sbJa4eT19TsskYfQdnJf8sjAmCMOZY4ZV0FiNW5XZOp8nIal1oyULPfzTAm6oaeFN 10 | 0ImCSU3U8h4wUQ8q/3XvBWtTKycZaoou0AwPoP0QN95Ywte7FHezNPb/n8KD7k0S6h9XAX 11 | UcBeCe5NHyov/0ZzA2p737hzm3w+MXGOboTQMu8WFXeGh4m7QH2o8ZJdgBhM5JF17uii+Q 12 | ppGoPWHf33MXwB3wxWmKZ0ua0f9AVLkQ2DfFszUoBJE/kcHRd4kj4Q4FWXeMBN0GoH8gdE 13 | gRWIlxn2/FAOce/BFPzzdP87H0jwz7SdcuVO1L 14 | -----END OPENSSH PRIVATE KEY----- 15 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk2: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAfwAAACJzay1lY2 3 | RzYS1zaGEyLW5pc3RwMjU2QG9wZW5zc2guY29tAAAACG5pc3RwMjU2AAAAQQSTl+SR6rTg 4 | lOZmcQkCtJ3Pd+lWinezo/gHk4oZdZcTQsmEYs766BlWGuB2Bz3qQRLa6cXsP+4K9kAjAJ 5 | 7zdoFUAAAABHNzaDoAAAGQ1qllJtapZSYAAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBv 6 | cGVuc3NoLmNvbQAAAAhuaXN0cDI1NgAAAEEEk5fkkeq04JTmZnEJArSdz3fpVop3s6P4B5 7 | OKGXWXE0LJhGLO+ugZVhrgdgc96kES2unF7D/uCvZAIwCe83aBVAAAAARzc2g6AQAAAOMt 8 | LS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KTUhjQ0FRRUVJSkxwVkxnSTVvdkRlOW 9 | VMWmZodCs5WWlMaitnam0rTXhHTXg5NndiRWw0Wm9Bb0dDQ3FHU000OQpBd0VIb1VRRFFn 10 | QUVrNWZra2VxMDRKVG1abkVKQXJTZHozZnBWb3AzczZQNEI1T0tHWFdYRTBMSmhHTE8rdW 11 | daClZocmdkZ2M5NmtFUzJ1bkY3RC91Q3ZaQUl3Q2U4M2FCVkE9PQotLS0tLUVORCBFQyBQ 12 | UklWQVRFIEtFWS0tLS0tCgAAAAAAAAAURUNEU0EtU0sgdGVzdCBrZXkgIzIBAgMEBQ== 13 | -----END OPENSSH PRIVATE KEY----- 14 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk2.fp: -------------------------------------------------------------------------------- 1 | SHA256:pz8VkgtRY3r50F4zSuzRlmq9c6vPTpJXLKKOgkyUcKE 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk2.fp.bb: -------------------------------------------------------------------------------- 1 | xobel-gavur-gorym-pedop-rarob-bunek-gucer-lofeg-syhaf-fylur-zoxix 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ecdsa_sk2.pub: -------------------------------------------------------------------------------- 1 | sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBJOX5JHqtOCU5mZxCQK0nc936VaKd7Oj+AeTihl1lxNCyYRizvroGVYa4HYHPepBEtrpxew/7gr2QCMAnvN2gVQAAAAEc3NoOg== ECDSA-SK test key #2 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_1: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACBThupGO0X+FLQhbz8CoKPwc7V3JNsQuGtlsgN+F7SMGQAAAJjnj4Ao54+A 4 | KAAAAAtzc2gtZWQyNTUxOQAAACBThupGO0X+FLQhbz8CoKPwc7V3JNsQuGtlsgN+F7SMGQ 5 | AAAED3KgoDbjR54V7bdNpfKlQY5m20UK1QaHytkCR+6rZEDFOG6kY7Rf4UtCFvPwKgo/Bz 6 | tXck2xC4a2WyA34XtIwZAAAAE0VEMjU1MTkgdGVzdCBrZXkgIzEBAg== 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_1-cert.fp: -------------------------------------------------------------------------------- 1 | SHA256:L3k/oJubblSY0lB9Ulsl7emDMnRPKm/8udf2ccwk560 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_1-cert.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIIxzuxl4z3uwAIslne8Huft+1n1IhHAlNbWZkQyyECCGAAAAIFOG6kY7Rf4UtCFvPwKgo/BztXck2xC4a2WyA34XtIwZAAAAAAAAAAgAAAACAAAABmp1bGl1cwAAABIAAAAFaG9zdDEAAAAFaG9zdDIAAAAANowB8AAAAABNHmBwAAAAAAAAAAAAAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACBThupGO0X+FLQhbz8CoKPwc7V3JNsQuGtlsgN+F7SMGQAAAFMAAAALc3NoLWVkMjU1MTkAAABABGTn+Bmz86Ajk+iqKCSdP5NClsYzn4alJd0V5bizhP0Kumc/HbqQfSt684J1WdSzih+EjvnTgBhK9jTBKb90AQ== ED25519 test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_1.fp: -------------------------------------------------------------------------------- 1 | SHA256:L3k/oJubblSY0lB9Ulsl7emDMnRPKm/8udf2ccwk560 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_1.fp.bb: -------------------------------------------------------------------------------- 1 | xubop-rekyd-bakal-nubuf-pahaf-gicuh-logeb-gocif-petod-galip-fuxux 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_1.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFOG6kY7Rf4UtCFvPwKgo/BztXck2xC4a2WyA34XtIwZ ED25519 test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_1_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDKT56mBA 3 | tXIMsWqmuuA2gdAAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIFOG6kY7Rf4UtCFv 4 | PwKgo/BztXck2xC4a2WyA34XtIwZAAAAoC13U47yfUOSZJePNUAwWXuFOk3aOKwPM5PMvK 5 | 0zwRnMZZjgn+tsMAYPwhsT3Mx3h5QzvVGFyFEqsiK7j4vAotD+LVQeBN5TwWbUBx4lnoGs 6 | 3iAfYVDakO/gNvVBDDGOqv5kdCc4cgn5HacjHQLKOAx6KzHe7JFn7uCywMdVVQjlpI6LHb 7 | mHkaKiVX/C2oiRnsoe17HZ8Fxyt3vd1qNM8BE= 8 | -----END OPENSSH PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_2: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACDPVKyLnm3eZE0lm0IfM3Uy9AsdGSBtozcoCt21blYBCwAAAJix1mBGsdZg 4 | RgAAAAtzc2gtZWQyNTUxOQAAACDPVKyLnm3eZE0lm0IfM3Uy9AsdGSBtozcoCt21blYBCw 5 | AAAECZEQHXs18o3DKjhUYaTyt+bUbhqfMeqmsKjYyFvzGVgs9UrIuebd5kTSWbQh8zdTL0 6 | Cx0ZIG2jNygK3bVuVgELAAAAE0VEMjU1MTkgdGVzdCBrZXkgIzEBAg== 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_2.fp: -------------------------------------------------------------------------------- 1 | SHA256:vMbaARqVciRgXyZPNHDo+P5p5WK5yWG1Oo6VC35Bomw 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_2.fp.bb: -------------------------------------------------------------------------------- 1 | xuces-bapyb-vikob-zesyv-budod-nupip-kebon-tacyc-fofed-lezic-soxax 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_2.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9UrIuebd5kTSWbQh8zdTL0Cx0ZIG2jNygK3bVuVgEL ED25519 test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk1: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAASgAAABpzay1zc2 3 | gtZWQyNTUxOUBvcGVuc3NoLmNvbQAAACAhaP5OS1PPOt7uumAvXlDtte9EHbqIT1EZEJ2y 4 | 2v3XMwAAAARzc2g6AAAAuBocY6UaHGOlAAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY2 5 | 9tAAAAICFo/k5LU8863u66YC9eUO2170QduohPURkQnbLa/dczAAAABHNzaDoBAAAAQJYq 6 | lGHhFoA25/q8X/rdTqDAb7dhqs4ehhd/w8x99CwiIWj+TktTzzre7rpgL15Q7bXvRB26iE 7 | 9RGRCdstr91zMAAAAAAAAAFkVEMjU1MTktU0sgdGVzdCBrZXkgIzEBAgM= 8 | -----END OPENSSH PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk1-cert.fp: -------------------------------------------------------------------------------- 1 | SHA256:6WZVJ44bqhAWLVP4Ns0TDkoSQSsZo/h2K+mEvOaNFbw 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk1-cert.pub: -------------------------------------------------------------------------------- 1 | sk-ssh-ed25519-cert-v01@openssh.com AAAAI3NrLXNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIJr7CuMntQKvHoUshx374fJLFEkyxKsEOBA1H6hk5scoAAAAICFo/k5LU8863u66YC9eUO2170QduohPURkQnbLa/dczAAAABHNzaDoAAAAAAAAACAAAAAIAAAAGanVsaXVzAAAAEgAAAAVob3N0MQAAAAVob3N0MgAAAAA2i4NgAAAAAE0d4eAAAAAAAAAAAAAAAAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIOo/0xneV3iM2qWEo5RUwvUYa2bjff292T5vvuXRomGQAAAAUwAAAAtzc2gtZWQyNTUxOQAAAECgsRGLDh1SI3m66MRp9D2iLP4wabQ0OrDgGidk7LsVn2XZHV5jBZN1RtNfe6PBMeVzfRtGUzOg18sO7H7uU+EC ED25519-SK test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk1.fp: -------------------------------------------------------------------------------- 1 | SHA256:6WZVJ44bqhAWLVP4Ns0TDkoSQSsZo/h2K+mEvOaNFbw 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk1.fp.bb: -------------------------------------------------------------------------------- 1 | xucac-vusip-tydoz-dudad-nerif-raran-tezun-cogyd-pamoh-bahef-ruxix 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk1.pub: -------------------------------------------------------------------------------- 1 | sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAICFo/k5LU8863u66YC9eUO2170QduohPURkQnbLa/dczAAAABHNzaDo= ED25519-SK test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk1_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDr5R9Yf/ 3 | ucEh0Ns6c34tcIAAAAEAAAAAEAAABKAAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29t 4 | AAAAICFo/k5LU8863u66YC9eUO2170QduohPURkQnbLa/dczAAAABHNzaDoAAADA2T6owx 5 | OSgKz4DvLnS3UJ/renbuew5mbkIWB1/y8xd3y5Usm08iUCAlKxep9dVRQvmyoTrc/7rHOM 6 | DkokNw+WgKambnlYT/9QfqViZ9iCBtbdmhLM6ksUCgQefvquRyXoJxlWstjXUll6Ru+ZbT 7 | H//Ss8C1bYtAiXR68OQ+rhDrvQxA9P8J1sGIlkuV3h8YXddSpyBW2Sn0LTHHBXYZo86cXZ 8 | G4Lnc8aGYm65eqdHgkfRmht3eS8DTdzEBfBNH5Ml 9 | -----END OPENSSH PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk2: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAASgAAABpzay1zc2 3 | gtZWQyNTUxOUBvcGVuc3NoLmNvbQAAACAV8fu1Sc31QLK2R/zGPdN3ve5xuFvDc7mEAWxb 4 | aI+YcwAAAARzc2g6AAAAuJCMX5uQjF+bAAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY2 5 | 9tAAAAIBXx+7VJzfVAsrZH/MY903e97nG4W8NzuYQBbFtoj5hzAAAABHNzaDoBAAAAQObE 6 | PajcKI1W30EKOhBb6u+Fgx464kf7EjnqDSg4l7gAFfH7tUnN9UCytkf8xj3Td73ucbhbw3 7 | O5hAFsW2iPmHMAAAAAAAAAFkVEMjU1MTktU0sgdGVzdCBrZXkgIzIBAgM= 8 | -----END OPENSSH PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk2.fp: -------------------------------------------------------------------------------- 1 | SHA256:b9BVPS5vuU4yu/FgweojLLg6zbfmBBoWLUgibdxxsoo 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk2.fp.bb: -------------------------------------------------------------------------------- 1 | xemac-tizim-dihep-supar-zupib-cukak-pasis-febeg-dyguv-hutec-dyxox 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/ed25519_sk2.pub: -------------------------------------------------------------------------------- 1 | sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIBXx+7VJzfVAsrZH/MY903e97nG4W8NzuYQBbFtoj5hzAAAABHNzaDo= ED25519-SK test key #2 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/pw: -------------------------------------------------------------------------------- 1 | mekmitasdigoat 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQDLV5lUTt7FrADseB/CGhEZzpoojjEW5y8+ePvLppmK3MmMI18u 3 | d6vxzpK3bwZLYkVSyfJYI0HmIuGhdu7yMrW6wb84gbq8C31Xoe9EORcIUuGSvDKd 4 | NSM1SjlhDquRblDFB8kToqXyx1lqrXecXylxIUOL0jE+u0rU1967pDJx+wIDAQAB 5 | AoGAXyj5mpjmbD+YlxGIWz/zrM4hGsWgd4VteKEJxT6MMI4uzCRpkMd0ck8oHiwZ 6 | GAI/SwUzIsgtONQuH3AXVsUgghW4Ynn+8ksEv0IZ918WDMDwqvqkyrVzsOsZzqYj 7 | Pf8DUDKCpwFjnlknJ04yvWBZvVhWtY4OiZ8GV0Ttsu3k+GECQQD1YHfvBb5FdJBv 8 | Uhde2Il+jaFia8mwVVNNaiD2ECxXx6CzGz54ZLEB9NPVfDUZK8lJ4UJDqelWNh3i 9 | PF3RefWDAkEA1CVBzAFL4mNwpleVPzrfy69xP3gWOa26MxM/GE6zx9jC7HgQ3KPa 10 | WKdG/FuHs085aTRDaDLmGcZ8IvMuu7NgKQJAcIOKmxR0Gd8IN7NZugjqixggb0Pj 11 | mLKXXwESGiJyYtHL0zTj4Uqyi6Ya2GJ66o7UXscmnmYz828fJtTtZBdbRwJBALfi 12 | C2QvA32Zv/0PEXibKXy996WSC4G3ShwXZKtHHKHvCxY5BDSbehk59VesZrVPyG2e 13 | NYdOBxD0cIlCzJE56/ECQAndVkxvO8hwyEFGGwF3faHIAe/OxVb+MjaU25//Pe1/ 14 | h/e6tlCk4w9CODpyV685gV394eYwMcGDcIkipTNUDZs= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1-cert.fp: -------------------------------------------------------------------------------- 1 | SHA256:l6itGumSMcRBBAFteCgmjQBIXqLK/jFGUH3viHX1RmE 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1-cert.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAg98LhS2EHxLOWCLopZPwHdg/RJXusnkOqQXSc9R7aITkAAAADAQABAAAAgQDLV5lUTt7FrADseB/CGhEZzpoojjEW5y8+ePvLppmK3MmMI18ud6vxzpK3bwZLYkVSyfJYI0HmIuGhdu7yMrW6wb84gbq8C31Xoe9EORcIUuGSvDKdNSM1SjlhDquRblDFB8kToqXyx1lqrXecXylxIUOL0jE+u0rU1967pDJx+wAAAAAAAAAFAAAAAgAAAAZqdWxpdXMAAAASAAAABWhvc3QxAAAABWhvc3QyAAAAADaMAfAAAAAATR5gcAAAAAAAAAAAAAAAAAAAADMAAAALc3NoLWVkMjU1MTkAAAAgU4bqRjtF/hS0IW8/AqCj8HO1dyTbELhrZbIDfhe0jBkAAABTAAAAC3NzaC1lZDI1NTE5AAAAQI3QGlUCzC07KorupxpDkkGy6tniaZ8EvBflzvv+itXWNchGvfUeHmVT6aX0sRqehdz/lR+GmXRoZBhofwh0qAM= RSA test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1.fp: -------------------------------------------------------------------------------- 1 | SHA256:l6itGumSMcRBBAFteCgmjQBIXqLK/jFGUH3viHX1RmE 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1.fp.bb: -------------------------------------------------------------------------------- 1 | xosis-fodod-votot-dibum-ryvac-rediz-naruf-votun-kevis-halis-gexux 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1.param.n: -------------------------------------------------------------------------------- 1 | 00cb5799544edec5ac00ec781fc21a1119ce9a288e3116e72f3e78fbcba6998adcc98c235f2e77abf1ce92b76f064b624552c9f2582341e622e1a176eef232b5bac1bf3881babc0b7d57a1ef4439170852e192bc329d3523354a39610eab916e50c507c913a2a5f2c7596aad779c5f297121438bd2313ebb4ad4d7debba43271fb 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1.param.p: -------------------------------------------------------------------------------- 1 | 00f56077ef05be4574906f52175ed8897e8da1626bc9b055534d6a20f6102c57c7a0b31b3e7864b101f4d3d57c35192bc949e14243a9e956361de23c5dd179f583 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1.param.q: -------------------------------------------------------------------------------- 1 | 00d42541cc014be26370a657953f3adfcbaf713f781639adba33133f184eb3c7d8c2ec7810dca3da58a746fc5b87b34f396934436832e619c67c22f32ebbb36029 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDLV5lUTt7FrADseB/CGhEZzpoojjEW5y8+ePvLppmK3MmMI18ud6vxzpK3bwZLYkVSyfJYI0HmIuGhdu7yMrW6wb84gbq8C31Xoe9EORcIUuGSvDKdNSM1SjlhDquRblDFB8kToqXyx1lqrXecXylxIUOL0jE+u0rU1967pDJx+w== RSA test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,0C3F819F6EEA66A471BAEEDDA8171606 4 | 5 | AhQNxgw7Z2un3dpm6KPHF1u5qVvOczm0yiTyPK4U11B3TTRhXOHdzPLAcKMX71Xq 6 | fmLm2/JIZATUbLTaysLKIQlmAgtpmXoKLv9b90R3AXLophgToZzOLpvlQTCt+y9G 7 | 0E3QQZG/LFy9BLNyw6uD5cy0RHT3FQb5VQDwfBvR/I+K3qWBFLlb7Rw9bCujYczu 8 | D3bimcDj/k6YkrWVsEa81Ch5RF2RClOYufti6bsvc4xIsB0Kd++vokER+kXFuQqf 9 | Tl0Jz+SG0kr9QtjVvkhBtSxzJ6/olAosoUySQ5hqsB8iECufBgp1KelXqsHFJQXy 10 | gCvVmGiivFUinX0rKOuWCHTplsSKQ9BnPSwDAAs8A7ZLcTXcLs/hMQ5r6fmOYfNN 11 | YthhjZyE2ciJO0lydGJUJMb5aJUak0rl+uINRlYCHTRLVwmCOmpfqz9SfcJb1ieU 12 | 4Us8NR+pXJar4U0+C2wVlNJkAdpL6GvYxN6vp7vLa+BiFwIZOQozswacIZk/ScXm 13 | QL9rmWug51RCmDeenX46WTEZeB0o0+xi60sDEDhhe4+iNYcJu5L0BJ5lqRFe3I5n 14 | HRRv1mBEjbF2fDcg/ChYfOXsc4gDivH2nObabeASuMFZyadmXfA8tnXRZf+7Wuy/ 15 | LZGYbM2xLeEyV3ss16WBHuIqexDt04OEZvs0jN90zj6Yv7qKCB975bdOcuKkN2Nn 16 | n9lA11R2pgsCs6COp9rYiWXkXZeDf3sW6kdcEV+/SzkVsv4JlHcsIzgk4WGVF/E/ 17 | ZkU4J9AvSdJPzEQDM+yszp0eeUow4+SAgpuNTqZiUO/2UUVbsr3qvlYMoCixhFAN 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1_sha1: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQDLV5lUTt7FrADseB/CGhEZzpoojjEW5y8+ePvLppmK3MmMI18u 3 | d6vxzpK3bwZLYkVSyfJYI0HmIuGhdu7yMrW6wb84gbq8C31Xoe9EORcIUuGSvDKd 4 | NSM1SjlhDquRblDFB8kToqXyx1lqrXecXylxIUOL0jE+u0rU1967pDJx+wIDAQAB 5 | AoGAXyj5mpjmbD+YlxGIWz/zrM4hGsWgd4VteKEJxT6MMI4uzCRpkMd0ck8oHiwZ 6 | GAI/SwUzIsgtONQuH3AXVsUgghW4Ynn+8ksEv0IZ918WDMDwqvqkyrVzsOsZzqYj 7 | Pf8DUDKCpwFjnlknJ04yvWBZvVhWtY4OiZ8GV0Ttsu3k+GECQQD1YHfvBb5FdJBv 8 | Uhde2Il+jaFia8mwVVNNaiD2ECxXx6CzGz54ZLEB9NPVfDUZK8lJ4UJDqelWNh3i 9 | PF3RefWDAkEA1CVBzAFL4mNwpleVPzrfy69xP3gWOa26MxM/GE6zx9jC7HgQ3KPa 10 | WKdG/FuHs085aTRDaDLmGcZ8IvMuu7NgKQJAcIOKmxR0Gd8IN7NZugjqixggb0Pj 11 | mLKXXwESGiJyYtHL0zTj4Uqyi6Ya2GJ66o7UXscmnmYz828fJtTtZBdbRwJBALfi 12 | C2QvA32Zv/0PEXibKXy996WSC4G3ShwXZKtHHKHvCxY5BDSbehk59VesZrVPyG2e 13 | NYdOBxD0cIlCzJE56/ECQAndVkxvO8hwyEFGGwF3faHIAe/OxVb+MjaU25//Pe1/ 14 | h/e6tlCk4w9CODpyV685gV394eYwMcGDcIkipTNUDZs= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1_sha1.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDLV5lUTt7FrADseB/CGhEZzpoojjEW5y8+ePvLppmK3MmMI18ud6vxzpK3bwZLYkVSyfJYI0HmIuGhdu7yMrW6wb84gbq8C31Xoe9EORcIUuGSvDKdNSM1SjlhDquRblDFB8kToqXyx1lqrXecXylxIUOL0jE+u0rU1967pDJx+w== RSA test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1_sha512: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQDLV5lUTt7FrADseB/CGhEZzpoojjEW5y8+ePvLppmK3MmMI18u 3 | d6vxzpK3bwZLYkVSyfJYI0HmIuGhdu7yMrW6wb84gbq8C31Xoe9EORcIUuGSvDKd 4 | NSM1SjlhDquRblDFB8kToqXyx1lqrXecXylxIUOL0jE+u0rU1967pDJx+wIDAQAB 5 | AoGAXyj5mpjmbD+YlxGIWz/zrM4hGsWgd4VteKEJxT6MMI4uzCRpkMd0ck8oHiwZ 6 | GAI/SwUzIsgtONQuH3AXVsUgghW4Ynn+8ksEv0IZ918WDMDwqvqkyrVzsOsZzqYj 7 | Pf8DUDKCpwFjnlknJ04yvWBZvVhWtY4OiZ8GV0Ttsu3k+GECQQD1YHfvBb5FdJBv 8 | Uhde2Il+jaFia8mwVVNNaiD2ECxXx6CzGz54ZLEB9NPVfDUZK8lJ4UJDqelWNh3i 9 | PF3RefWDAkEA1CVBzAFL4mNwpleVPzrfy69xP3gWOa26MxM/GE6zx9jC7HgQ3KPa 10 | WKdG/FuHs085aTRDaDLmGcZ8IvMuu7NgKQJAcIOKmxR0Gd8IN7NZugjqixggb0Pj 11 | mLKXXwESGiJyYtHL0zTj4Uqyi6Ya2GJ66o7UXscmnmYz828fJtTtZBdbRwJBALfi 12 | C2QvA32Zv/0PEXibKXy996WSC4G3ShwXZKtHHKHvCxY5BDSbehk59VesZrVPyG2e 13 | NYdOBxD0cIlCzJE56/ECQAndVkxvO8hwyEFGGwF3faHIAe/OxVb+MjaU25//Pe1/ 14 | h/e6tlCk4w9CODpyV685gV394eYwMcGDcIkipTNUDZs= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_1_sha512.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDLV5lUTt7FrADseB/CGhEZzpoojjEW5y8+ePvLppmK3MmMI18ud6vxzpK3bwZLYkVSyfJYI0HmIuGhdu7yMrW6wb84gbq8C31Xoe9EORcIUuGSvDKdNSM1SjlhDquRblDFB8kToqXyx1lqrXecXylxIUOL0jE+u0rU1967pDJx+w== RSA test key #1 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_2.fp: -------------------------------------------------------------------------------- 1 | SHA256:NoQh0XBUuYUSWqnzOzOBnfpgJTRWLMj7BlWAb8IbjeE 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_2.fp.bb: -------------------------------------------------------------------------------- 1 | xogit-gupof-mydon-hocep-zuval-feson-rarif-cefar-tobar-ryvap-kuxex 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_2.param.n: -------------------------------------------------------------------------------- 1 | 00f4d1145e9efc4809262f8f9e023e260733ce8e4f9c7023d5ce44d1fa66497724f09090011d4378727e1ada44e687b12bf8df025c2b22ab120e57519f1f67f068288194e117790262fdc323c6bf645563b81610ba97552a6ef3d476b5025198c54c0f7f021f4c2a093ba8662ae528c4de9fac9f818b85129baa6abd2e388780c9a406ebff6b54a58adfab5c7cced85f1f1f98648de1e2bf2615830e3968dbc609ed9145f6e9a1e5b6991b6022fef2f7049ec2de9a9a11035d2a3f17a9a4a80ef15629f3ae8e4d7adb445cba3dd6d03d1dbe9feb1fcc73f1890cd5d32a1a56086789eb17969c079f0d939158063b63d61bb80c61109562f502f9356a05380d02eb 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_2.param.p: -------------------------------------------------------------------------------- 1 | 00fb82dee3474e88898acebcf23b8a970737490ea07abe5f7c0837c9a36111ca4792f3ad759945fc27d7f78c5accca2ffd8a85c24be949274ab17f8f797b9aaa76f584f28d617e6de3953d46307fa31ec12108ffdab3f105fb3df54156f4728fe07b1598bbb5c5e260d4f73d8b29532bfc6b9f07d8899f87ec819571c8b38e7a87 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_2.param.q: -------------------------------------------------------------------------------- 1 | 00f92f9f57e501dc41cc91ff3b4ad7a2283612d66c0d130f639d4c18376a54e5b5e1939f4d5966bb43929e448a426dadc1fae84cf0d56f64d8df04d1badcfc1fdc8e156d5cd4dcf860ec936fc166261136156010f6df10a70525867d7989fef6752fd8db6faf3fe018bbbc1fa862fb4155445e1a398468d78b4e77884bdf5c197d 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_2.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD00RRenvxICSYvj54CPiYHM86OT5xwI9XORNH6Zkl3JPCQkAEdQ3hyfhraROaHsSv43wJcKyKrEg5XUZ8fZ/BoKIGU4Rd5AmL9wyPGv2RVY7gWELqXVSpu89R2tQJRmMVMD38CH0wqCTuoZirlKMTen6yfgYuFEpuqar0uOIeAyaQG6/9rVKWK36tcfM7YXx8fmGSN4eK/JhWDDjlo28YJ7ZFF9umh5baZG2Ai/vL3BJ7C3pqaEQNdKj8XqaSoDvFWKfOujk1620Rcuj3W0D0dvp/rH8xz8YkM1dMqGlYIZ4nrF5acB58Nk5FYBjtj1hu4DGEQlWL1Avk1agU4DQLr RSA test key #2 2 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_n: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAlwAAAAdzc2gtcn 3 | NhAAAAAwEAAQAAAIEAy1eZVE7exawA7HgfwhoRGc6aKI4xFucvPnj7y6aZitzJjCNfLner 4 | 8c6St28GS2JFUsnyWCNB5iLhoXbu8jK1usG/OIG6vAt9V6HvRDkXCFLhkrwynTUjNUo5YQ 5 | 6rkW5QxQfJE6Kl8sdZaq13nF8pcSFDi9IxPrtK1Nfeu6QycfsAAAH4to4I7raOCO4AAAAH 6 | c3NoLXJzYQAAAIEAy1eZVE7exawA7HgfwhoRGc6aKI4xFucvPnj7y6aZitzJjCNfLner8c 7 | 6St28GS2JFUsnyWCNB5iLhoXbu8jK1usG/OIG6vAt9V6HvRDkXCFLhkrwynTUjNUo5YQ6r 8 | kW5QxQfJE6Kl8sdZaq13nF8pcSFDi9IxPrtK1Nfeu6QycfsAAAADAQABAAAAgF8o+ZqY5m 9 | w/mJcRiFs/86zOIRrFoHeFbXihCcU+jDCOLswkaZDHdHJPKB4sGRgCP0sFMyLILTjULh9w 10 | F1bFIIIVuGJ5/vJLBL9CGfdfFgzA8Kr6pMq1c7DrGc6mIz3/A1AygqcBY55ZJydOMr1gWb 11 | 1YVrWODomfBldE7bLt5PhhAAAAQAndVkxvO8hwyEFGGwF3faHIAe/OxVb+MjaU25//Pe1/ 12 | h/e6tlCk4w9CODpyV685gV394eYwMcGDcIkipTNUDZsAAABBAPVgd+8FvkV0kG9SF17YiX 13 | 6NoWJrybBVU01qIPYQLFfHoLMbPnhksQH009V8NRkryUnhQkOp6VY2HeI8XdF59YMAAABB 14 | ANQlQcwBS+JjcKZXlT8638uvcT94FjmtujMTPxhOs8fYwux4ENyj2linRvxbh7NPOWk0Q2 15 | gy5hnGfCLzLruzYCkAAAAAAQID 16 | -----END OPENSSH PRIVATE KEY----- 17 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/testdata/rsa_n_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABAFw/Wg/V 3 | I5SAXWj/HJr9qeAAAAEAAAAAEAAACXAAAAB3NzaC1yc2EAAAADAQABAAAAgQDLV5lUTt7F 4 | rADseB/CGhEZzpoojjEW5y8+ePvLppmK3MmMI18ud6vxzpK3bwZLYkVSyfJYI0HmIuGhdu 5 | 7yMrW6wb84gbq8C31Xoe9EORcIUuGSvDKdNSM1SjlhDquRblDFB8kToqXyx1lqrXecXylx 6 | IUOL0jE+u0rU1967pDJx+wAAAgD1iSGiMlMJt2VH4kx5yr0wCJS+4UOmX0bxKO7UH5Jcul 7 | K5eaSe5ZoKE7hTYBaz0K5dRF/0fqLsvVZlE4quDjFLN6Hyavgn2W/QM7SUqBHgRMal9pgH 8 | LnxX6mFNWJ+4yb7f3bcbVIdgmMm3sT9Xjwaf5xgzNlR2mkUWtFwjyQh6FxUo5apNzqNBwO 9 | l2Q4xfmyZTp1s++pStQ/su6obXpxnE2Nx5G/D84ZL5iWl+njUy/MvJTazHRbiTSyihU+UA 10 | mUr5ZNuP3WUYY+h3KVlHpYHJYB7l3AMTKuPMFLhY9V7BJ+DuKPaqBgX4hvRzY0eVQiFr61 11 | ovjWjvfu1ulx550JqdYCgH2PpP0E89OQne35Cxs9QPThfe8DKojC9YquYh9zmVTvr7kNiE 12 | Soluk/7oKpQIDaC+/SRk7AJ2e3Cbt1lXyGNn37PuqaaC/apaF/DOD6Yig9aClS7jOUrT96 13 | 56trFAYfHEIKbRCUSMCiM1+x6HOLYf5ROrGE9KxT3kUD9XMsMpTva+cPpHUpbGpXcYE10N 14 | MyYDz+V5M2/ZoIdEhscJNQ3UnhaZpeEaqcOyNyo90n3Dnaw/WpMDD/kNMGfm8daTaYInnQ 15 | QnwA2gwlYfpTAqxE71oXgOuGmtA0yqJB4778Xq26Pb+B7/mZZZe6n0FVmiNC+ZG37ZGOw/ 16 | iGL9e2Sxzw== 17 | -----END OPENSSH PRIVATE KEY----- 18 | -------------------------------------------------------------------------------- /regress/unittests/sshkey/tests.c: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: tests.c,v 1.1 2014/06/24 01:14:18 djm Exp $ */ 2 | /* 3 | * Regress test for sshbuf.h buffer API 4 | * 5 | * Placed in the public domain 6 | */ 7 | 8 | #include "includes.h" 9 | 10 | #include "../test_helper/test_helper.h" 11 | 12 | void sshkey_tests(void); 13 | void sshkey_file_tests(void); 14 | void sshkey_fuzz_tests(void); 15 | 16 | void 17 | tests(void) 18 | { 19 | sshkey_tests(); 20 | sshkey_file_tests(); 21 | sshkey_fuzz_tests(); 22 | } 23 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.3 2023/01/15 23:35:10 djm Exp $ 2 | 3 | PROG=test_sshsig 4 | SRCS=tests.c 5 | 6 | # From usr.bin/ssh 7 | SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c 8 | SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c 9 | SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c 10 | SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c 11 | SRCS+=addr.c addrmatch.c bitmap.c sshsig.c 12 | SRCS+=ed25519.c hash.c 13 | SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c 14 | SRCS+=ssh-ed25519-sk.c sk-usbhid.c 15 | 16 | SRCS+=digest-openssl.c 17 | #SRCS+=digest-libc.c 18 | SRCS+=utf8.c 19 | 20 | REGRESS_TARGETS=run-regress-${PROG} 21 | 22 | run-regress-${PROG}: ${PROG} 23 | env ${TEST_ENV} ./${PROG} ${UNITTEST_ARGS} -d ${.CURDIR}/testdata 24 | 25 | .include 26 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/dsa: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQCXpndQdz2mQVnk+lYOF3nxDT+h6SiJmUvBFhnFWBv8tG4pTOkb 3 | EwGufLEzGpzjTj+3bjVau7LFt37AFrqs4Num272BWNsYNIjOlGPgq7Xjv32FN00x 4 | JYh1DoRs1cGGnvohlsWEamGGhTHD1a9ipctPEBV+NrxtZMrl+pO/ZZg8vQIVAKJB 5 | P3iNYSpSuW74+q4WxLCuK8O3AoGAQldE+BIuxlvoG1IFiWesx0CU+H2KO0SEZc9A 6 | SX/qjOabh0Fb78ofTlEf9gWHFfat8SvSJQIOPMVlb76Lio8AAMT8Eaa/qQKKYmQL 7 | dNq4MLhhjxx5KLGt6J2JyFPExCv+qnHYHD59ngtLwKyqGjpSC8LPLktdXn8W/Aad 8 | Ly1K7+MCgYBsMHBczhSeUh8w7i20CVg4OlNTmfJRVU2tO6OpMxZ/quitRm3hLKSN 9 | u4xRkvHJwi4LhQtv1SXvLI5gs5P3gCG8tsIAiyCqLinHha63iBdJpqhnV/x/j7dB 10 | yJr3xJbnmLdWLkkCtNk1Ir1/CuEz+ufAyLGdKWksEAu1UUlb501BkwIVAILIa3Rg 11 | 0h7J9lQpHJphvF3K0M1T 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/dsa.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAJemd1B3PaZBWeT6Vg4XefENP6HpKImZS8EWGcVYG/y0bilM6RsTAa58sTManONOP7duNVq7ssW3fsAWuqzg26bbvYFY2xg0iM6UY+CrteO/fYU3TTEliHUOhGzVwYae+iGWxYRqYYaFMcPVr2Kly08QFX42vG1kyuX6k79lmDy9AAAAFQCiQT94jWEqUrlu+PquFsSwrivDtwAAAIBCV0T4Ei7GW+gbUgWJZ6zHQJT4fYo7RIRlz0BJf+qM5puHQVvvyh9OUR/2BYcV9q3xK9IlAg48xWVvvouKjwAAxPwRpr+pAopiZAt02rgwuGGPHHkosa3onYnIU8TEK/6qcdgcPn2eC0vArKoaOlILws8uS11efxb8Bp0vLUrv4wAAAIBsMHBczhSeUh8w7i20CVg4OlNTmfJRVU2tO6OpMxZ/quitRm3hLKSNu4xRkvHJwi4LhQtv1SXvLI5gs5P3gCG8tsIAiyCqLinHha63iBdJpqhnV/x/j7dByJr3xJbnmLdWLkkCtNk1Ir1/CuEz+ufAyLGdKWksEAu1UUlb501Bkw== DSA test 2 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/dsa.sig: -------------------------------------------------------------------------------- 1 | -----BEGIN SSH SIGNATURE----- 2 | U1NIU0lHAAAAAQAAAbEAAAAHc3NoLWRzcwAAAIEAl6Z3UHc9pkFZ5PpWDhd58Q0/oekoiZ 3 | lLwRYZxVgb/LRuKUzpGxMBrnyxMxqc404/t241Wruyxbd+wBa6rODbptu9gVjbGDSIzpRj 4 | 4Ku14799hTdNMSWIdQ6EbNXBhp76IZbFhGphhoUxw9WvYqXLTxAVfja8bWTK5fqTv2WYPL 5 | 0AAAAVAKJBP3iNYSpSuW74+q4WxLCuK8O3AAAAgEJXRPgSLsZb6BtSBYlnrMdAlPh9ijtE 6 | hGXPQEl/6ozmm4dBW+/KH05RH/YFhxX2rfEr0iUCDjzFZW++i4qPAADE/BGmv6kCimJkC3 7 | TauDC4YY8ceSixreidichTxMQr/qpx2Bw+fZ4LS8Csqho6UgvCzy5LXV5/FvwGnS8tSu/j 8 | AAAAgGwwcFzOFJ5SHzDuLbQJWDg6U1OZ8lFVTa07o6kzFn+q6K1GbeEspI27jFGS8cnCLg 9 | uFC2/VJe8sjmCzk/eAIby2wgCLIKouKceFrreIF0mmqGdX/H+Pt0HImvfElueYt1YuSQK0 10 | 2TUivX8K4TP658DIsZ0paSwQC7VRSVvnTUGTAAAACHVuaXR0ZXN0AAAAAAAAAAZzaGE1MT 11 | IAAAA3AAAAB3NzaC1kc3MAAAAodi5lr0pqBpO76OY4N1CtfR85BCgZ95qfVjP/e9lToj0q 12 | lwjSJJXUjw== 13 | -----END SSH SIGNATURE----- 14 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ecdsa: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIFg0ZCSEB5LNeLsXYL25g3kqEWsqh52DR+yNOjyQJqyZoAoGCCqGSM49 3 | AwEHoUQDQgAE3sud88FV0N8FPspZSV7LWqj6uPPLRZiSsenNuEYAteWPyDgrZsWb 4 | LzXBuUJucepaCNuW/QWgHBRbrjWj3ERm3A== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ecdsa.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBN7LnfPBVdDfBT7KWUley1qo+rjzy0WYkrHpzbhGALXlj8g4K2bFmy81wblCbnHqWgjblv0FoBwUW641o9xEZtw= ECDSA test 2 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ecdsa.sig: -------------------------------------------------------------------------------- 1 | -----BEGIN SSH SIGNATURE----- 2 | U1NIU0lHAAAAAQAAAGgAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAAhuaXN0cDI1NgAAAE 3 | EE3sud88FV0N8FPspZSV7LWqj6uPPLRZiSsenNuEYAteWPyDgrZsWbLzXBuUJucepaCNuW 4 | /QWgHBRbrjWj3ERm3AAAAAh1bml0dGVzdAAAAAAAAAAGc2hhNTEyAAAAZQAAABNlY2RzYS 5 | 1zaGEyLW5pc3RwMjU2AAAASgAAACEAycVNsTlE+XEZYyYiDxWZlliruf/pPMhEEMR/XLdQ 6 | a4MAAAAhALQt+5gES7L3uKGptHB6UZQMuZ2WyI0C6FJs4v6AtMIU 7 | -----END SSH SIGNATURE----- 8 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ecdsa_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAfwAAACJzay1lY2 3 | RzYS1zaGEyLW5pc3RwMjU2QG9wZW5zc2guY29tAAAACG5pc3RwMjU2AAAAQQSg1WuY0XE+ 4 | VexOsrJsFYuxyVoe6eQ/oXmyz2pEHKZw9moyWehv+Fs7oZWFp3JVmOtybKQ6dvfUZYauQE 5 | /Ov4PAAAAABHNzaDoAAAGI6iV41+oleNcAAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBv 6 | cGVuc3NoLmNvbQAAAAhuaXN0cDI1NgAAAEEEoNVrmNFxPlXsTrKybBWLsclaHunkP6F5ss 7 | 9qRBymcPZqMlnob/hbO6GVhadyVZjrcmykOnb31GWGrkBPzr+DwAAAAARzc2g6AQAAAOMt 8 | LS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KTUhjQ0FRRUVJQm9oeW54M2tpTFVEeS 9 | t5UjU3WXBXSU5KektnU1p6WnV2VTljYXFla3JGcW9Bb0dDQ3FHU000OQpBd0VIb1VRRFFn 10 | QUVvTlZybU5GeFBsWHNUckt5YkJXTHNjbGFIdW5rUDZGNXNzOXFSQnltY1BacU1sbm9iL2 11 | hiCk82R1ZoYWR5VlpqcmNteWtPbmIzMUdXR3JrQlB6citEd0E9PQotLS0tLUVORCBFQyBQ 12 | UklWQVRFIEtFWS0tLS0tCgAAAAAAAAARRUNEU0EtU0sgdGVzdCBrZXk= 13 | -----END OPENSSH PRIVATE KEY----- 14 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ecdsa_sk.pub: -------------------------------------------------------------------------------- 1 | sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBKDVa5jRcT5V7E6ysmwVi7HJWh7p5D+hebLPakQcpnD2ajJZ6G/4WzuhlYWnclWY63JspDp299Rlhq5AT86/g8AAAAAEc3NoOg== ECDSA-SK test key 2 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ecdsa_sk.sig: -------------------------------------------------------------------------------- 1 | -----BEGIN SSH SIGNATURE----- 2 | U1NIU0lHAAAAAQAAAH8AAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBvcGVuc3NoLmNvbQ 3 | AAAAhuaXN0cDI1NgAAAEEEoNVrmNFxPlXsTrKybBWLsclaHunkP6F5ss9qRBymcPZqMlno 4 | b/hbO6GVhadyVZjrcmykOnb31GWGrkBPzr+DwAAAAARzc2g6AAAACHVuaXR0ZXN0AAAAAA 5 | AAAAZzaGE1MTIAAAB3AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20A 6 | AABIAAAAIHohGwyy8iKT3zwd1TYA9V/Ioo7h/3zCJUtyq/Qigt/HAAAAIGzidTwq7D/kFa 7 | 7Xjcp/KkdbIs4MfQpfAW/0OciajlpzARI0Vng= 8 | -----END SSH SIGNATURE----- 9 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.pub: -------------------------------------------------------------------------------- 1 | sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBBRGwDjs4HhJFcn4tJ5Gr72KcmRmCS1OirETxaXvnsNApgoOLF1a/7rxldfSMHm73eT1nhHe97W8qicPPEAKDJQAAAALbWluZHJvdC5vcmc= 2 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.sig: -------------------------------------------------------------------------------- 1 | -----BEGIN SSH SIGNATURE----- 2 | U1NIU0lHAAAAAQAAAIYAAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBvcGVuc3NoLmNvbQ 3 | AAAAhuaXN0cDI1NgAAAEEEFEbAOOzgeEkVyfi0nkavvYpyZGYJLU6KsRPFpe+ew0CmCg4s 4 | XVr/uvGV19Iwebvd5PWeEd73tbyqJw88QAoMlAAAAAttaW5kcm90Lm9yZwAAAAh1bml0dG 5 | VzdAAAAAAAAAAGc2hhNTEyAAABhwAAACt3ZWJhdXRobi1zay1lY2RzYS1zaGEyLW5pc3Rw 6 | MjU2QG9wZW5zc2guY29tAAAASQAAACBj2oMT9tb5wRXe6mdmf4/lgAO8wrgr95ouozwNg4 7 | itnQAAACEAtU9g5wz3HchUiLfLD6plr9T4TiJ32lVCrATSjpiy0SMBAAADHwAAABdodHRw 8 | czovL3d3dy5taW5kcm90Lm9yZwAAAON7InR5cGUiOiJ3ZWJhdXRobi5nZXQiLCJjaGFsbG 9 | VuZ2UiOiJVMU5JVTBsSEFBQUFDSFZ1YVhSMFpYTjBBQUFBQUFBQUFBWnphR0UxTVRJQUFB 10 | QkFMTHU4WmdjU3h0Nk1zRlV6dWlaZ0c2R3dNZEo5ZDd4ZUU3WW9SSXcwZzlpSEpfd3NGRD 11 | cxbzRXbHllenZGV0VqYnFRMHFDN0Z3R3Bqa2pVUVAtTmQ2dyIsIm9yaWdpbiI6Imh0dHBz 12 | Oi8vd3d3Lm1pbmRyb3Qub3JnIiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQAAAAA= 13 | -----END SSH SIGNATURE----- 14 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ed25519: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACCJYs0iDdw0Fe/FTzY1b78I4H/j+R6mz2AmLtwTjHYwBAAAAJjpGas/6Rmr 4 | PwAAAAtzc2gtZWQyNTUxOQAAACCJYs0iDdw0Fe/FTzY1b78I4H/j+R6mz2AmLtwTjHYwBA 5 | AAAEDpSKRA1QKW6kYiQftGRWh+H0fNekzYLG6c3bzseoCpEolizSIN3DQV78VPNjVvvwjg 6 | f+P5HqbPYCYu3BOMdjAEAAAAEEVEMjU1MTkgdGVzdCBrZXkBAgMEBQ== 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ed25519.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIlizSIN3DQV78VPNjVvvwjgf+P5HqbPYCYu3BOMdjAE ED25519 test key 2 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ed25519.sig: -------------------------------------------------------------------------------- 1 | -----BEGIN SSH SIGNATURE----- 2 | U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgiWLNIg3cNBXvxU82NW+/COB/4/ 3 | keps9gJi7cE4x2MAQAAAAIdW5pdHRlc3QAAAAAAAAABnNoYTUxMgAAAFMAAAALc3NoLWVk 4 | MjU1MTkAAABAihQsbUzuNEFflk5Tw1+H9aLS7tZQk0RG8KW1DtOmDYYnWe3D3UKiG3fcJa 5 | DNg4vBWp1j1gLRiBMOF+gwYNegDg== 6 | -----END SSH SIGNATURE----- 7 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ed25519_sk: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAASgAAABpzay1zc2 3 | gtZWQyNTUxOUBvcGVuc3NoLmNvbQAAACCbGg2F0GK7nOm4pQmAyCuGEjnhvs5q0TtjPbdN 4 | //+yxwAAAARzc2g6AAAAuBw56jAcOeowAAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY2 5 | 9tAAAAIJsaDYXQYruc6bilCYDIK4YSOeG+zmrRO2M9t03//7LHAAAABHNzaDoBAAAAQFXc 6 | 6dCwWewIk1EBofAouGZApW8+s0XekXenxtb78+x0mxoNhdBiu5zpuKUJgMgrhhI54b7Oat 7 | E7Yz23Tf//sscAAAAAAAAAE0VEMjU1MTktU0sgdGVzdCBrZXkBAgMEBQY= 8 | -----END OPENSSH PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ed25519_sk.pub: -------------------------------------------------------------------------------- 1 | sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIJsaDYXQYruc6bilCYDIK4YSOeG+zmrRO2M9t03//7LHAAAABHNzaDo= ED25519-SK test key 2 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/ed25519_sk.sig: -------------------------------------------------------------------------------- 1 | -----BEGIN SSH SIGNATURE----- 2 | U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAgmxoNhd 3 | Biu5zpuKUJgMgrhhI54b7OatE7Yz23Tf//sscAAAAEc3NoOgAAAAh1bml0dGVzdAAAAAAA 4 | AAAGc2hhNTEyAAAAZwAAABpzay1zc2gtZWQyNTUxOUBvcGVuc3NoLmNvbQAAAEAi+7eTjW 5 | /+LQ2M+sCD+KFtH1n7VFFJon/SZFsxODyV8cWTlFKj617Ys1Ur5TV6uaEXQhck8rBA2oQI 6 | HTPANLIPARI0Vng= 7 | -----END SSH SIGNATURE----- 8 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/namespace: -------------------------------------------------------------------------------- 1 | unittest -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/rsa.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDfzqWaNEe0mnKPzsGtL6ywya29z/VI83SBdM+z2NnWFgCr3w9xrf9FhUzgdpK7oI7O1AnZmdkPdN79d4GchTaZ+69ASX4OLCKwZ42CVXJEKLvvzt88UV9zHNl8NrsQHapjxLehpIZkrxCrO4bCYYAiaOVBfPon4cJ394P/nwagJJKKsgQIVYIC3642s4L8SaADOxt9x9ohttXMDjS2WBTeE7YnjaR13PwKKwNO0MpAAEVw5pBnJxJ+fscM/5aBctdcFQj3BUzVOJ/V/70xfTzEiy8K8bOjvIuBttMUtIavlKQD606ti6gDtXx+B7SJ3/emdW0bVSLcju96N4DB/Qdmq0V4ESc7CQgkWZl4y0V45V/7iSLiHWsOoC9Kxw28y0uno5elsABMBMC4RYSQhAGXWueCcR7SIL2JT2K0oxbqongW0hvgAIfUShTXHy+qsV5yDaG+p+TkJkEkhtXbwkW4aNpzc7EFnXsWpvyWOiZSKvUasRPbPro0yBvlOMMPsFU= RSA test 2 | -------------------------------------------------------------------------------- /regress/unittests/sshsig/testdata/signed-data: -------------------------------------------------------------------------------- 1 | This is a test, this is only a test -------------------------------------------------------------------------------- /regress/unittests/test_helper/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.3 2016/07/04 18:01:44 guenther Exp $ 2 | 3 | LIB= test_helper 4 | SRCS= test_helper.c fuzz.c 5 | 6 | NOPROFILE= yes 7 | NOPIC= yes 8 | 9 | # Hack to allow building with SUBDIR in ../../Makefile 10 | regress: all 11 | 12 | install: 13 | @echo -n 14 | 15 | .include 16 | -------------------------------------------------------------------------------- /regress/unittests/utf8/Makefile: -------------------------------------------------------------------------------- 1 | # $OpenBSD: Makefile,v 1.5 2017/12/21 00:41:22 djm Exp $ 2 | 3 | PROG=test_utf8 4 | SRCS=tests.c 5 | 6 | # From usr.bin/ssh 7 | SRCS+=utf8.c atomicio.c 8 | 9 | REGRESS_TARGETS=run-regress-${PROG} 10 | 11 | run-regress-${PROG}: ${PROG} 12 | env ${TEST_ENV} ./${PROG} 13 | 14 | .include 15 | -------------------------------------------------------------------------------- /regress/unittests/win32compat/string_tests.c: -------------------------------------------------------------------------------- 1 | #include "includes.h" 2 | #include 3 | #include "../test_helper/test_helper.h" 4 | #include "tests.h" 5 | 6 | int retValue; 7 | 8 | void 9 | str_simple_tests() 10 | { 11 | TEST_START("string testcases"); 12 | 13 | char *s1 = "test_dir"; 14 | char *s2 = NULL; 15 | 16 | s2 = strdup(NULL); 17 | ASSERT_PTR_EQ(s2, NULL); 18 | 19 | s2 = strdup(s1); 20 | ASSERT_PTR_NE(s2, NULL); 21 | 22 | retValue = strcasecmp(s1, s2); 23 | ASSERT_INT_EQ(retValue, 0); 24 | 25 | retValue = strncasecmp(s1, s2, strlen(s1)); 26 | ASSERT_INT_EQ(retValue, 0); 27 | 28 | s2[0] = 'T'; 29 | retValue = strcasecmp(s1, s2); 30 | ASSERT_INT_EQ(retValue, 0); 31 | 32 | retValue = strncasecmp(s1, s2, strlen(s1)); 33 | ASSERT_INT_EQ(retValue, 0); 34 | free(s2); 35 | 36 | TEST_DONE(); 37 | } 38 | 39 | void 40 | str_tests() 41 | { 42 | str_simple_tests(); 43 | } 44 | -------------------------------------------------------------------------------- /regress/unittests/win32compat/tests.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | void signal_tests(); 3 | void socket_tests(); 4 | void file_tests(); 5 | void miscellaneous_tests(); 6 | 7 | char *dup_str(char *inStr); 8 | void delete_dir_recursive(char *full_dir_path); 9 | 10 | #define ASSERT_HANDLE(handle) \ 11 | {\ 12 | ASSERT_PTR_NE(handle, INVALID_HANDLE_VALUE); \ 13 | ASSERT_PTR_NE(handle, 0); \ 14 | } 15 | -------------------------------------------------------------------------------- /regress/valgrind-unit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | UNIT_BINARY="$1" 4 | shift 5 | UNIT_ARGS="$@" 6 | 7 | test "x$OBJ" = "x" && OBJ=$PWD 8 | 9 | # This mostly replicates the logic in test-exec.sh for running the 10 | # regress tests under valgrind, except that we unconditionally enable 11 | # leak checking because the unit tests should be clean. 12 | VG_LEAK="--leak-check=full" 13 | VG_TEST=`basename $UNIT_BINARY` 14 | VG_LOG="$OBJ/valgrind-out/${VG_TEST}.%p" 15 | VG_OPTS="--track-origins=yes $VG_LEAK --log-file=${VG_LOG}" 16 | VG_OPTS="$VG_OPTS --trace-children=yes" 17 | VG_PATH="valgrind" 18 | if [ "x$VALGRIND_PATH" != "x" ]; then 19 | VG_PATH="$VALGRIND_PATH" 20 | fi 21 | 22 | mkdir -p "$OBJ/valgrind-out" 23 | 24 | exec $VG_PATH $VG_OPTS $UNIT_BINARY $UNIT_ARGS 25 | -------------------------------------------------------------------------------- /regress/yes-head.sh: -------------------------------------------------------------------------------- 1 | # $OpenBSD: yes-head.sh,v 1.7 2023/01/14 10:05:54 dtucker Exp $ 2 | # Placed in the Public Domain. 3 | 4 | tid="yes pipe head" 5 | 6 | lines=`${SSH} -F $OBJ/ssh_proxy thishost 'sh -c "while true;do echo yes;done | _POSIX2_VERSION=199209 head -2000"' | (sleep 3 ; wc -l)` 7 | if [ $? -ne 0 ]; then 8 | fail "yes|head test failed" 9 | lines=0 10 | fi 11 | if [ $lines -ne 2000 ]; then 12 | fail "yes|head returns $lines lines instead of 2000" 13 | fi 14 | -------------------------------------------------------------------------------- /serverloop.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: serverloop.h,v 1.8 2017/09/12 06:32:07 djm Exp $ */ 2 | 3 | /* 4 | * Author: Tatu Ylonen 5 | * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland 6 | * All rights reserved 7 | * 8 | * As far as I am concerned, the code I have written for this software 9 | * can be used freely for any purpose. Any derived versions of this 10 | * software must be clearly marked as such, and if the derived work is 11 | * incompatible with the protocol description in the RFC file, it must be 12 | * called by a name other than "ssh" or "Secure Shell". 13 | */ 14 | /* 15 | * Performs the interactive session. This handles data transmission between 16 | * the client and the program. Note that the notion of stdin, stdout, and 17 | * stderr in this function is sort of reversed: this function writes to stdin 18 | * (of the child program), and reads from stdout and stderr (of the child 19 | * program). 20 | */ 21 | #ifndef SERVERLOOP_H 22 | #define SERVERLOOP_H 23 | 24 | struct ssh; 25 | 26 | void server_loop2(struct ssh *, Authctxt *); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /sftp-usergroup.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2022 Damien Miller 3 | * 4 | * Permission to use, copy, modify, and distribute this software for any 5 | * purpose with or without fee is hereby granted, provided that the above 6 | * copyright notice and this permission notice appear in all copies. 7 | * 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | */ 16 | 17 | /* sftp client user/group lookup and caching */ 18 | 19 | /* Lookup uids/gids and populate cache */ 20 | void get_remote_user_groups_from_glob(struct sftp_conn *conn, glob_t *g); 21 | void get_remote_user_groups_from_dirents(struct sftp_conn *conn, SFTP_DIRENT **d); 22 | 23 | /* Return user/group name from cache or NULL if not found */ 24 | const char *ruser_name(uid_t uid); 25 | const char *rgroup_name(uid_t gid); 26 | -------------------------------------------------------------------------------- /ssh-sandbox.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: ssh-sandbox.h,v 1.1 2011/06/23 09:34:13 djm Exp $ */ 2 | /* 3 | * Copyright (c) 2011 Damien Miller 4 | * 5 | * Permission to use, copy, modify, and distribute this software for any 6 | * purpose with or without fee is hereby granted, provided that the above 7 | * copyright notice and this permission notice appear in all copies. 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | */ 17 | 18 | struct monitor; 19 | struct ssh_sandbox; 20 | 21 | struct ssh_sandbox *ssh_sandbox_init(struct monitor *); 22 | void ssh_sandbox_child(struct ssh_sandbox *); 23 | void ssh_sandbox_parent_finish(struct ssh_sandbox *); 24 | void ssh_sandbox_parent_preauth(struct ssh_sandbox *, pid_t); 25 | -------------------------------------------------------------------------------- /ssh-sk-helper.0: -------------------------------------------------------------------------------- 1 | SSH-SK-HELPER(8) System Manager's Manual SSH-SK-HELPER(8) 2 | 3 | NAME 4 | ssh-sk-helper M-bM-^@M-^S OpenSSH helper for FIDO authenticator support 5 | 6 | SYNOPSIS 7 | ssh-sk-helper [-v] 8 | 9 | DESCRIPTION 10 | ssh-sk-helper is used by ssh(1), ssh-agent(1), and ssh-keygen(1) to 11 | access keys provided by a FIDO authenticator. 12 | 13 | ssh-sk-helper is not intended to be invoked directly by the user. 14 | 15 | A single option is supported: 16 | 17 | -v Verbose mode. Causes ssh-sk-helper to print debugging messages 18 | about its progress. This is helpful in debugging problems. 19 | Multiple -v options increase the verbosity. The maximum is 3. 20 | 21 | Note that ssh(1), ssh-agent(1), and ssh-keygen(1) will 22 | automatically pass the -v flag to ssh-sk-helper when they have 23 | themselves been placed in debug mode. 24 | 25 | SEE ALSO 26 | ssh(1), ssh-agent(1), ssh-keygen(1) 27 | 28 | HISTORY 29 | ssh-sk-helper first appeared in OpenBSD 6.7. 30 | 31 | AUTHORS 32 | Damien Miller 33 | 34 | OpenBSD 7.5 April 29, 2022 OpenBSD 7.5 35 | -------------------------------------------------------------------------------- /sshd-common.h: -------------------------------------------------------------------------------- 1 | 2 | static void recv_config_state(int fd, struct sshbuf *conf); 3 | static void recv_rexec_state(int fd, struct sshbuf *conf); 4 | static void send_config_state(int fd, struct sshbuf *conf); 5 | static void send_rexec_state(int fd, struct sshbuf *conf); -------------------------------------------------------------------------------- /sshlogin.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: sshlogin.h,v 1.8 2006/08/03 03:34:42 deraadt Exp $ */ 2 | 3 | /* 4 | * Author: Tatu Ylonen 5 | * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland 6 | * All rights reserved 7 | * 8 | * As far as I am concerned, the code I have written for this software 9 | * can be used freely for any purpose. Any derived versions of this 10 | * software must be clearly marked as such, and if the derived work is 11 | * incompatible with the protocol description in the RFC file, it must be 12 | * called by a name other than "ssh" or "Secure Shell". 13 | */ 14 | 15 | void record_login(pid_t, const char *, const char *, uid_t, 16 | const char *, struct sockaddr *, socklen_t); 17 | void record_logout(pid_t, const char *, const char *); 18 | time_t get_last_login_time(uid_t, const char *, char *, size_t); 19 | 20 | #ifdef LOGIN_NEEDS_UTMPX 21 | void record_utmp_only(pid_t, const char *, const char *, const char *, 22 | struct sockaddr *, socklen_t); 23 | #endif 24 | -------------------------------------------------------------------------------- /sshpty.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: sshpty.h,v 1.13 2016/11/29 03:54:50 dtucker Exp $ */ 2 | 3 | /* 4 | * Author: Tatu Ylonen 5 | * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland 6 | * All rights reserved 7 | * Functions for allocating a pseudo-terminal and making it the controlling 8 | * tty. 9 | * 10 | * As far as I am concerned, the code I have written for this software 11 | * can be used freely for any purpose. Any derived versions of this 12 | * software must be clearly marked as such, and if the derived work is 13 | * incompatible with the protocol description in the RFC file, it must be 14 | * called by a name other than "ssh" or "Secure Shell". 15 | */ 16 | 17 | #include 18 | 19 | struct termios *get_saved_tio(void); 20 | void leave_raw_mode(int); 21 | void enter_raw_mode(int); 22 | 23 | int pty_allocate(int *, int *, char *, size_t); 24 | void pty_release(const char *); 25 | void pty_make_controlling_tty(int *, const char *); 26 | void pty_change_window_size(int, u_int, u_int, u_int, u_int); 27 | void pty_setowner(struct passwd *, const char *); 28 | void disconnect_controlling_tty(void); 29 | -------------------------------------------------------------------------------- /uidswap.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: uidswap.h,v 1.14 2018/07/18 11:34:05 dtucker Exp $ */ 2 | 3 | /* 4 | * Author: Tatu Ylonen 5 | * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland 6 | * All rights reserved 7 | * 8 | * As far as I am concerned, the code I have written for this software 9 | * can be used freely for any purpose. Any derived versions of this 10 | * software must be clearly marked as such, and if the derived work is 11 | * incompatible with the protocol description in the RFC file, it must be 12 | * called by a name other than "ssh" or "Secure Shell". 13 | */ 14 | 15 | void temporarily_use_uid(struct passwd *); 16 | void restore_uid(void); 17 | void permanently_set_uid(struct passwd *); 18 | -------------------------------------------------------------------------------- /umac128.c: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: umac128.c,v 1.2 2018/02/08 04:12:32 dtucker Exp $ */ 2 | 3 | #define UMAC_OUTPUT_LEN 16 4 | #define umac_new umac128_new 5 | #define umac_update umac128_update 6 | #define umac_final umac128_final 7 | #define umac_delete umac128_delete 8 | #define umac_ctx umac128_ctx 9 | 10 | #include "umac.c" 11 | -------------------------------------------------------------------------------- /version.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: version.h,v 1.102 2024/07/01 04:31:59 djm Exp $ */ 2 | 3 | #define SSH_WINDOWS_VERSION "OpenSSH_for_Windows_9.8" 4 | #define SSH_WINDOWS_BANNER " Win32-OpenSSH-GitHub" 5 | #define SSH_VERSION SSH_WINDOWS_VERSION SSH_WINDOWS_BANNER 6 | 7 | #define SSH_PORTABLE "p2" 8 | #define SSH_RELEASE SSH_WINDOWS_VERSION SSH_PORTABLE SSH_WINDOWS_BANNER 9 | -------------------------------------------------------------------------------- /xmalloc.h: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: xmalloc.h,v 1.20 2021/04/03 06:18:41 djm Exp $ */ 2 | 3 | /* 4 | * Author: Tatu Ylonen 5 | * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland 6 | * All rights reserved 7 | * Created: Mon Mar 20 22:09:17 1995 ylo 8 | * 9 | * Versions of malloc and friends that check their results, and never return 10 | * failure (they call fatal if they encounter an error). 11 | * 12 | * As far as I am concerned, the code I have written for this software 13 | * can be used freely for any purpose. Any derived versions of this 14 | * software must be clearly marked as such, and if the derived work is 15 | * incompatible with the protocol description in the RFC file, it must be 16 | * called by a name other than "ssh" or "Secure Shell". 17 | */ 18 | 19 | void *xmalloc(size_t); 20 | void *xcalloc(size_t, size_t); 21 | void *xreallocarray(void *, size_t, size_t); 22 | void *xrecallocarray(void *, size_t, size_t, size_t); 23 | char *xstrdup(const char *); 24 | int xasprintf(char **, const char *, ...) 25 | __attribute__((__format__ (printf, 2, 3))) __attribute__((__nonnull__ (2))); 26 | int xvasprintf(char **, const char *, va_list) 27 | __attribute__((__nonnull__ (2))); 28 | -------------------------------------------------------------------------------- /xmss_commons.c: -------------------------------------------------------------------------------- 1 | /* $OpenBSD: xmss_commons.c,v 1.2 2018/02/26 03:56:44 dtucker Exp $ */ 2 | /* 3 | xmss_commons.c 20160722 4 | Andreas Hülsing 5 | Joost Rijneveld 6 | Public domain. 7 | */ 8 | 9 | #include "includes.h" 10 | #ifdef WITH_XMSS 11 | 12 | #include "xmss_commons.h" 13 | #include 14 | #include 15 | #ifdef HAVE_STDINT_H 16 | # include 17 | #endif 18 | 19 | void to_byte(unsigned char *out, unsigned long long in, uint32_t bytes) 20 | { 21 | int32_t i; 22 | for (i = bytes-1; i >= 0; i--) { 23 | out[i] = in & 0xff; 24 | in = in >> 8; 25 | } 26 | } 27 | 28 | #if 0 29 | void hexdump(const unsigned char *a, size_t len) 30 | { 31 | size_t i; 32 | for (i = 0; i < len; i++) 33 | printf("%02x", a[i]); 34 | } 35 | #endif 36 | #endif /* WITH_XMSS */ 37 | -------------------------------------------------------------------------------- /xmss_commons.h: -------------------------------------------------------------------------------- 1 | #ifdef WITH_XMSS 2 | /* $OpenBSD: xmss_commons.h,v 1.3 2018/02/26 03:56:44 dtucker Exp $ */ 3 | /* 4 | xmss_commons.h 20160722 5 | Andreas Hülsing 6 | Joost Rijneveld 7 | Public domain. 8 | */ 9 | #ifndef XMSS_COMMONS_H 10 | #define XMSS_COMMONS_H 11 | 12 | #include 13 | #ifdef HAVE_STDINT_H 14 | #include 15 | #endif 16 | #endif 17 | void to_byte(unsigned char *output, unsigned long long in, uint32_t bytes); 18 | #if 0 19 | void hexdump(const unsigned char *a, size_t len); 20 | #endif 21 | #endif /* WITH_XMSS */ 22 | -------------------------------------------------------------------------------- /xmss_hash.h: -------------------------------------------------------------------------------- 1 | #ifdef WITH_XMSS 2 | /* $OpenBSD: xmss_hash.h,v 1.2 2018/02/26 03:56:44 dtucker Exp $ */ 3 | /* 4 | hash.h version 20160722 5 | Andreas Hülsing 6 | Joost Rijneveld 7 | Public domain. 8 | */ 9 | 10 | #ifndef HASH_H 11 | #define HASH_H 12 | 13 | #define IS_LITTLE_ENDIAN 1 14 | 15 | unsigned char* addr_to_byte(unsigned char *bytes, const uint32_t addr[8]); 16 | int prf(unsigned char *out, const unsigned char *in, const unsigned char *key, unsigned int keylen); 17 | int h_msg(unsigned char *out,const unsigned char *in,unsigned long long inlen, const unsigned char *key, const unsigned int keylen, const unsigned int n); 18 | int hash_h(unsigned char *out, const unsigned char *in, const unsigned char *pub_seed, uint32_t addr[8], const unsigned int n); 19 | int hash_f(unsigned char *out, const unsigned char *in, const unsigned char *pub_seed, uint32_t addr[8], const unsigned int n); 20 | 21 | #endif 22 | #endif /* WITH_XMSS */ 23 | -------------------------------------------------------------------------------- /xmss_hash_address.h: -------------------------------------------------------------------------------- 1 | #ifdef WITH_XMSS 2 | /* $OpenBSD: xmss_hash_address.h,v 1.2 2018/02/26 03:56:44 dtucker Exp $ */ 3 | /* 4 | hash_address.h version 20160722 5 | Andreas Hülsing 6 | Joost Rijneveld 7 | Public domain. 8 | */ 9 | 10 | #ifdef HAVE_STDINT_H 11 | #include 12 | #endif 13 | 14 | void setLayerADRS(uint32_t adrs[8], uint32_t layer); 15 | 16 | void setTreeADRS(uint32_t adrs[8], uint64_t tree); 17 | 18 | void setType(uint32_t adrs[8], uint32_t type); 19 | 20 | void setKeyAndMask(uint32_t adrs[8], uint32_t keyAndMask); 21 | 22 | // OTS 23 | 24 | void setOTSADRS(uint32_t adrs[8], uint32_t ots); 25 | 26 | void setChainADRS(uint32_t adrs[8], uint32_t chain); 27 | 28 | void setHashADRS(uint32_t adrs[8], uint32_t hash); 29 | 30 | // L-tree 31 | 32 | void setLtreeADRS(uint32_t adrs[8], uint32_t ltree); 33 | 34 | // Hash Tree & L-tree 35 | 36 | void setTreeHeight(uint32_t adrs[8], uint32_t treeHeight); 37 | 38 | void setTreeIndex(uint32_t adrs[8], uint32_t treeIndex); 39 | 40 | #endif /* WITH_XMSS */ 41 | --------------------------------------------------------------------------------