Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
369 commits
Select commit Hold shift + click to select a range
5f761cd
Update obsd tests to use current images.
daztucker Jun 17, 2025
ad38ec5
upstream: fix leak on error path; Coverity CID 481976
djmdjm Jun 17, 2025
b360f3a
upstream: whitespace
djmdjm Jun 17, 2025
5ba8391
upstream: better debug diagnostics when loading keys. Will now list
djmdjm Jun 19, 2025
688fa02
upstream: make "Match !final" not trigger a 2nd pass ssh_config
djmdjm Jun 24, 2025
57fb460
upstream: add RCS ID
djmdjm Jun 17, 2025
838d5ec
upstream: Add simple test for password auth. Requires some setup
daztucker Jun 24, 2025
bcfe734
upstream: Add simple regression test for dropbear as a server.
daztucker Jun 28, 2025
8a9384d
Enable password tests on Github ephemeral VMs.
daztucker Jun 29, 2025
d32614b
Move env to where it (hopefully) belongs.
daztucker Jun 29, 2025
223a1be
Move env again.
daztucker Jun 29, 2025
700205b
Fix env again.
daztucker Jun 29, 2025
0b17d56
Encrypt temporary password we're setting.
daztucker Jun 29, 2025
83d3ffc
upstream: Check dropbear server version for required features.
daztucker Jun 29, 2025
b28e91a
upstream: Add shebang path to askpass script. Required for exec on
daztucker Jun 29, 2025
29cf521
wrap some autoconf macros in AC_CACHE_CHECK
djmdjm Jul 2, 2025
fd10cea
upstream: mux: fix incorrect return value check in local forward
djmdjm Jul 4, 2025
0cf38d7
upstream: the messaging layer between sshd-session and sshd-auth had a
djmdjm Jul 4, 2025
007b69f
upstream: add a regress test for configurations > 256KB
djmdjm Jul 4, 2025
c971f3d
Add include for gssapi definitions.
daztucker Jul 5, 2025
eddd1d2
upstream: Fix mistracking of MaxStartups process exits in some
djmdjm Jul 4, 2025
1052fa6
more diagnostics when getgrouplist fails
djmdjm Jul 11, 2025
f01a899
upstream: add a "Match Group NoSuchGroup" to exercise groupaccess.c
djmdjm Jul 11, 2025
f9dc519
let ga_init() fail gracefully if getgrouplist does
djmdjm Jul 12, 2025
e6805e2
Add gnome-ssh-askpass4 for GNOME 40+
jtojnar May 18, 2023
defc806
upstream: Add missing inter-library dependencies to LDADD and
Jul 12, 2025
40fb2dc
upstream: add a ssh_config RefuseConnection option that, when
djmdjm Jul 23, 2025
259c66a
Remove DEBUG_ACTIONS variable.
daztucker Jul 24, 2025
a8c0e5c
upstream: Help OpenSSH's PKCS#11 support kick its meth habit.
djmdjm Jul 24, 2025
1641ab8
upstream: factor out encoding of a raw ed25519 signature into its
djmdjm Jul 24, 2025
9f8ccc3
upstream: less stale reference to PKCS#1 1.5 hash OIDs; feedback
djmdjm Jul 24, 2025
bf33a73
upstream: this should include stdlib.h explicitly
djmdjm Jul 24, 2025
2f52699
remove vestigial stub
djmdjm Jul 25, 2025
03e9e99
include ssh-pkcs11-client.o as common dep
djmdjm Jul 25, 2025
33b4f05
update clang-16 -> clang-19
djmdjm Jul 25, 2025
203f5ac
upstream: test code now needs to link ssh-pkcs11-client.c any time
djmdjm Jul 24, 2025
eedab8d
unbreak !EC builds
djmdjm Jul 25, 2025
ed1e370
upstream: Don't snprintf a NULL since not all platforms support it.
daztucker Jul 25, 2025
550d2a4
another attempt at fixing !EC builds
djmdjm Jul 25, 2025
2b530cc
upstream: update our PKCS#11 API header to v3.0;
djmdjm Jul 25, 2025
361ff0c
upstream: Support ed25519 keys hosted on PKCS#11 tokens.
djmdjm Jul 26, 2025
a729163
upstream: regression tests for Ed25519 keys in PKCS#11 tokens
djmdjm Jul 26, 2025
2603098
repair build for libcrypto without ed25519 support
djmdjm Jul 26, 2025
5e4bfe6
more ec/ed25519 fixing
djmdjm Jul 26, 2025
a5bec2c
upstream: fix variable name in disabled code
djmdjm Jul 30, 2025
dc630e6
upstream: unbreak WITH_OPENSSL=no builds, also allowing ed25519
djmdjm Jul 30, 2025
284abbe
upstream: Plug leak in case where sigp is passed as NULL. Coverity CID
daztucker Jul 30, 2025
b1c4ced
Replace fbsd64ppc VM with physical host.
daztucker Aug 1, 2025
e85248d
Comment out atime restore test.
daztucker Aug 2, 2025
d1c6c67
Disable security key tests for bigendian interop
daztucker Aug 2, 2025
65909fa
upstream: Set default IPQoS for interactive sessions to Expedited
job Jul 31, 2025
ec3465f
upstream: Deprecate support for IPv4 type-of-service (TOS) IPQoS
job Jul 31, 2025
6ebd472
upstream: a bunch of the protocol extensions we support now have RFCs
djmdjm Aug 5, 2025
2a31009
upstream: Use the operating system default DSCP marking for
job Aug 5, 2025
9ffa981
upstream: when refusing a certificate for user authentication, log
djmdjm Aug 6, 2025
60b909f
upstream: Improve sentence. ok djm@
daztucker Aug 6, 2025
2ebc638
upstream: all state related to the ssh connection should live in
djmdjm Aug 6, 2025
0e1b8aa
upstream: ssh(1): add a warning when the connection negotiates a
djmdjm Aug 11, 2025
8b6c1f4
upstream: Handle localtime_r() failure by return "UNKNOWN-TIME"
Aug 11, 2025
ab5074d
upstream: fix typo, ok markus dtucker
sthen Aug 12, 2025
fde5a4d
upstream: Cast serial no for %lld to prevent compiler warnings on some
daztucker Aug 14, 2025
883886c
upstream: Cast serial no for %lld to prevent compiler warnings on some
daztucker Aug 14, 2025
32deb00
upstream: Cast serial no for %lld to prevent compiler warnings on some
daztucker Aug 14, 2025
a00f5b0
handle futex_time64 properly in seccomp sandbox
djmdjm Aug 18, 2025
3a03910
allow some socket syscalls in seccomp sandbox
djmdjm Aug 18, 2025
80b5ffd
upstream: make -E a no-op in sshd-auth. Redirecting logging to a
djmdjm Aug 18, 2025
9b61679
upstream: add channel_report_open() to report (to logs) open
djmdjm Aug 18, 2025
f807a59
upstream: SIGINFO handler for ssh(1) to dump active
djmdjm Aug 18, 2025
dc51470
upstream: SIGINFO handler for sshd(8) to dump active
djmdjm Aug 18, 2025
2892390
upstream: Make ssh(1) and sshd(8) set IP QoS (aka IP_TOS, IPV6_TCLASS)
djmdjm Aug 18, 2025
b7ee13f
wrap SIGINFO in ifdef
djmdjm Aug 18, 2025
0560222
depend
djmdjm Aug 18, 2025
c2c8bae
upstream: missing set_log_handler() call in ssh-auth.c, exposed after
djmdjm Aug 18, 2025
ae44cd7
upstream: cast
djmdjm Aug 18, 2025
9184fa3
check for setsockopt IP_TOS in OpenBSD pledge
djmdjm Aug 18, 2025
6c84609
depend
djmdjm Aug 18, 2025
5e9ca80
Match version instead of groups in connect-bigconf
djmdjm Aug 18, 2025
3ef1a87
Fix pledge(2) special casing
djmdjm Aug 18, 2025
ceca966
upstream: Delete unused accessor function
job Aug 18, 2025
908e9d5
upstream: ssh_config.5: say "post-quantum" instead of "post quantum
Aug 18, 2025
a9a3f02
upstream: remove experimental support for XMSS keys;
djmdjm Aug 29, 2025
683d0ab
upstream: Make MaxStartups and PerSourceNetBlockSize first-match-wins
djmdjm Sep 1, 2025
9313233
upstream: fix previous
djmdjm Sep 2, 2025
c357c4a
upstream: benchmark more diffie-hellman-group* KEXs
djmdjm Aug 21, 2025
19f7cb3
upstream: test MaxStatups idempotency; ok dtucker@
djmdjm Sep 1, 2025
a9b0b69
upstream: replace remaining cases where we manually included __func__
djmdjm Sep 2, 2025
23a2bb7
replace remaining manual logging of __func__
djmdjm Sep 2, 2025
a0b095f
upstream: grammar and typos in comments
djmdjm Sep 2, 2025
d94a9a8
portable-specific comment grammer/spelling fixes
djmdjm Sep 2, 2025
6fd9306
upstream: GssStrictAcceptor was missing from sshd -T output; fix
djmdjm Sep 2, 2025
2f369d3
upstream: fix comment on sshbuf_froms() - it *returns* an error
djmdjm Sep 2, 2025
8866d24
upstream: unit test for xextendf()
djmdjm Sep 2, 2025
cc4eb3d
upstream: simplify algorithm list functions using xextendf(); ok
djmdjm Sep 2, 2025
f38a552
missing header
djmdjm Sep 2, 2025
35d5917
upstream: Improve rules for %-expansion of username.
djmdjm Sep 4, 2025
43b3bff
upstream: don't allow \0 characters in url-encoded strings.
djmdjm Sep 4, 2025
8e85ad3
upstream: fix rtrim() function to not attempt to delete whitespace
djmdjm Sep 4, 2025
e3699ff
upstream: fix sshbuf_dtourlb64() to not choke on empty buffers;
djmdjm Sep 4, 2025
4be4451
upstream: unit tests for a bunch of misc.c functions; ok deraadt@
djmdjm Sep 4, 2025
4569866
upstream: unit tests for sshbuf_equals and sshbuf_dtourlb64; ok
djmdjm Sep 4, 2025
f64701c
upstream: repair test after changes to percent expansion of usernames
djmdjm Sep 4, 2025
9b2c5a2
Fill in missing system header files.
daztucker Sep 5, 2025
d45b17d
Create replacement poll.h if needed.
daztucker Sep 5, 2025
5f09983
Create replacement paths.h if needed.
daztucker Sep 5, 2025
53887d8
Create replacement util.h if needed.
daztucker Sep 5, 2025
82fed51
Create replacement ifaddrs.h if needed.
daztucker Sep 5, 2025
59b8070
Create replacement sys/time.h if needed.
daztucker Sep 5, 2025
ea586ed
Create replacement sys/stat.h if needed.
daztucker Sep 5, 2025
cd9ba06
Create replacement time.h if needed.
daztucker Sep 5, 2025
60334af
Reformat replacement header check one per line.
daztucker Sep 5, 2025
65dcdb5
Create replacement sys/un.h if needed.
daztucker Sep 5, 2025
4911f26
Create replacement libgen.h if needed.
daztucker Sep 5, 2025
7d30526
Remove stray #endif left from previous.
daztucker Sep 5, 2025
caa973d
Create replacement netgroup.h if needed.
daztucker Sep 5, 2025
c729a83
Move sys/time.h include to match upstream.
daztucker Sep 5, 2025
a60721c
Add /* WITH_OPENSSL */ comments.
daztucker Sep 5, 2025
6aac2be
Create replacement endian.h if needed.
daztucker Sep 5, 2025
f93de82
Create replacement nlist.h if needed.
daztucker Sep 5, 2025
932e9f2
upstream: Remove unused rmd160.h header. ripemd160 support was
daztucker Sep 5, 2025
19d6a7a
upstream: Order headers as per KNF. Also removes diff vs
daztucker Sep 5, 2025
441a8fa
upstream: Order headers as per KNF. Removes diff vs portable.
daztucker Sep 5, 2025
b34c16b
Reorder includes to match upstream.
daztucker Sep 5, 2025
22cfd2d
Move ssh-pkcs11.h include to match upstream.
daztucker Sep 5, 2025
aed6a95
Sync includes with upstream.
daztucker Sep 5, 2025
024b694
Resync header order with upstream.
daztucker Sep 5, 2025
bb8ac05
Resync header order with upstream.
daztucker Sep 5, 2025
e803222
upstream: Order headers as per KNF.
daztucker Sep 5, 2025
0ac179c
upstream: Order headers as per KNF. Removes diff vs portable.
daztucker Sep 5, 2025
ee32a36
upstream: Order includes as per KNF and add time.h. Removes diff
daztucker Sep 5, 2025
3ca274e
Check for nlist function.
daztucker Sep 5, 2025
67a8bf4
Use SSH_TUN_COMPAT_AF on FreeBSD.
mkhon Aug 18, 2025
54abadd
Accept OpenSSL 4.0.0-dev versions.
daztucker Sep 7, 2025
3d8ae7f
modified: regress/rekey.sh
Sep 8, 2025
d16b1b4
upstream: Tabs->spaces. Removes diff vs portable.
daztucker Sep 5, 2025
e9dcccc
upstream: remove unused 0-sized files; ok deraadt@
jonathangray Sep 8, 2025
0c719c6
upstream: When adding certificates to an agent, set the expiry to
djmdjm Sep 11, 2025
7a4738a
upstream: need time.h for time(3)
djmdjm Sep 11, 2025
c60153e
upstream: correct getopt() string
djmdjm Sep 11, 2025
edc6017
upstream: disable ssh-add autoexpiry of certificates when testing
djmdjm Sep 11, 2025
efed5da
upstream: fix memleak when applying certificate options; ok
djmdjm Sep 15, 2025
0387201
upstream: when merging auth options into the active set, don't
djmdjm Sep 15, 2025
fae8e41
upstream: fix memleak of channel forwarding permissions; ok
djmdjm Sep 15, 2025
67940cc
upstream: memleak of kex->server_sig_algs; ok dtucker@
djmdjm Sep 15, 2025
d68451a
upstream: memleak of KRL revoked certs struct; ok dtucker
djmdjm Sep 15, 2025
0088b3f
upstream: memleaks of request packet and hostkeys blob; ok
djmdjm Sep 15, 2025
ee77ab9
upstream: memleak of rfwd callback context; ok dtucker@
djmdjm Sep 15, 2025
bc60bd5
upstream: memleak of editline history; ok dtucker@
djmdjm Sep 15, 2025
42fc6b6
upstream: memleak of hostkey when downgrading host cert->key; ok
djmdjm Sep 15, 2025
ee99f6e
upstream: memleak of certificate path; ok dtucker@
djmdjm Sep 15, 2025
0bb3708
upstream: memleak of keys not used for authentication; ok
djmdjm Sep 15, 2025
b9464ce
upstream: leak of authentication options at exit; ok dtucker@
djmdjm Sep 15, 2025
52f38c7
upstream: leak of principals file lines; ok dtucker@
djmdjm Sep 15, 2025
6f59424
upstream: fix leaks of struct sftp_conn in scp; ok dtucker@
djmdjm Sep 15, 2025
a4aa090
upstream: memory leaks in unit tests
djmdjm Sep 15, 2025
7c32e09
Add VM test targets via vmaction on Github.
daztucker Sep 15, 2025
2202e5f
Use relative URLs for status
daztucker Sep 16, 2025
fc70405
Move Gihub VMs to their own status line.
daztucker Sep 17, 2025
8099339
Whitespace.
daztucker Sep 17, 2025
bc32814
upstream: log at level INFO when PerSourcePenalties actually blocks
djmdjm Sep 19, 2025
ca9ac11
Rerun tests if run_tests.sh changes.
daztucker Sep 20, 2025
1659d0a
Build OpenSSL with -j4 to speed it up.
daztucker Sep 20, 2025
c682c9f
Add tests for OpenSSL 3.4 and 3.5 versions.
daztucker Sep 20, 2025
67b3ed1
Add OpenSSL 3.x ABI cross-compatibility test.
daztucker Sep 20, 2025
2c1d38f
Exclude generated openbsd-compat/include directory.
daztucker Sep 22, 2025
83853aa
Factor out OpenSSL install and test more versions.
daztucker Sep 22, 2025
b94e725
Specify rpath when building OpenSSL.
daztucker Sep 23, 2025
31fce4f
Test openssl-3.6.0-beta1.
daztucker Sep 23, 2025
d00015d
Test openssl-3.6 branch not beta1.
daztucker Sep 23, 2025
eff3588
Merge VM tests into a single workflow file.
daztucker Sep 23, 2025
d858847
upstream: spelling; ok dtucker@
jonathangray Sep 24, 2025
ae62a16
upstream: remove prototype for removed ssh_packet_set_tos() ok
jonathangray Sep 25, 2025
0af7e5b
upstream: remove unneeded externs ok djm@
jonathangray Sep 25, 2025
6f28a93
upstream: consistently use NULL for null pointer constants found
jonathangray Sep 25, 2025
b62aa85
upstream: clarify intent and avoid (harmess, defined behaviour)
djmdjm Sep 25, 2025
d0c1e73
upstream: fix leaks of config objects in
djmdjm Sep 25, 2025
4fddebe
upstream: add some functions to free various structs, including
djmdjm Sep 25, 2025
a071af0
upstream: wait for the unprivileged sshd-auth process to exit
djmdjm Sep 25, 2025
a8a2702
upstream: fix some leaks; feedback/ok dtucker@
djmdjm Sep 25, 2025
a1a7df8
upstream: fix some leaks in ssh-add; feedback/ok dtucker@
djmdjm Sep 25, 2025
846987d
upstream: fix some one-off leaks in ssh-keygen; ok dtucker@
djmdjm Sep 25, 2025
8235dc3
upstream: fix some one-off leaks in ssh.c; ok dtucker@
djmdjm Sep 25, 2025
1362f6c
Add #ifdefs in pwfree to match those in pwcopy.
daztucker Sep 25, 2025
7ce3823
Merge all putty tests into a single test.
daztucker Sep 23, 2025
35f3e2a
Update pledge() interface to match current OpenBSD.
daztucker Sep 25, 2025
e914e61
Remove status bits from OpenSSL >=3 version check.
daztucker Sep 25, 2025
6c3c9f0
Replace hand-rolled modulo with arc4random_uniform.
daztucker Sep 25, 2025
37d996b
upstream: Check return codes of sshbuf functions.
daztucker Sep 25, 2025
9824ec5
Update link to oss-fuzz bug tracker.
daztucker Sep 26, 2025
b4ceca9
Shorten workflow names to fit in a single line.
daztucker Sep 26, 2025
97b32fa
upstream: Use $OBJ for temp file in maxstartups idempotence test.
daztucker Sep 26, 2025
b06a150
Stop testing OpenBSD ubsan until fixed upstream.
daztucker Sep 27, 2025
b1c4bf5
upstream: avoid use-after-free in update_krl_from_file() found with
jonathangray Sep 25, 2025
bcd88de
upstream: kbd-interactive device names should be matched against
djmdjm Sep 29, 2025
fda31e1
upstream: avoid spurious error message when loading certificates
djmdjm Sep 29, 2025
c82f4dd
upstream: Null out keys after freeing in tests in the case where we
daztucker Sep 29, 2025
dfb991b
upstream: Sort headers as per KNF. Removes diff vs portable.
daztucker Sep 29, 2025
2f71b44
upstream: Include misc.h. Removes diff vs portable.
daztucker Sep 29, 2025
90f49a1
upstream: Move ifdef to start of file. Removes diff vs portable.
daztucker Sep 29, 2025
893a579
upstream: Add explicit check for array overflow.
daztucker Sep 29, 2025
d343df4
ensure struct passwd fields are non-NULL in pwcopy
Aug 22, 2025
e5055ef
Don't log audit messages with UNKNOWN hostname
allisonkarlitskaya Sep 3, 2025
42b14ff
upstream: fix memory leak in mux_client_request_stdio_fwd GHPR#575
djmdjm Sep 30, 2025
1f75567
upstream: avoid a fatal() when sftp tab-completes filenames that
djmdjm Sep 30, 2025
2c504a7
upstream: during sftp uploads, avoid a condition where a failed write
djmdjm Sep 30, 2025
9aaf299
Initial pass at porting 10.1 into 18.7.1
rapier1 Sep 30, 2025
037e185
Typos in readconf.c
rapier1 Sep 30, 2025
d478e25
Update OpenSSL & LibreSSL versions we test against.
daztucker Oct 1, 2025
eb30a0d
upstream: Get rid of utf8 droppings in commment since it confuses
daztucker Oct 1, 2025
aceabd6
upstream: Set keys to NULL after freeing in tests where the
daztucker Oct 1, 2025
5c50ddb
Remove compat "include" dir during distclean.
daztucker Oct 1, 2025
047e022
Pass new "compat includes" path via AC_SUBST.
daztucker Oct 1, 2025
1bed65a
Merge of Oct 1 2025 OpenSSH Master
rapier1 Oct 1, 2025
b9f6a84
Pass COMPATINCLUDES down to openbsd-compat too.
daztucker Oct 2, 2025
6a239b0
upstream: backout r1.243 (fix for fatal during tab-completion with
djmdjm Oct 2, 2025
3957cc2
upstream: Relax array check slightly. Prevents compiler warnings
daztucker Oct 2, 2025
8cf3d17
Merge remote-tracking branch 'openssh-master/master' into port_10.1_1…
rapier1 Oct 2, 2025
a9cbe10
upstream: include openssl/bn.h explicitly in files where we use BN_*
djmdjm Oct 3, 2025
ade92f5
upstream: stray newline
djmdjm Oct 3, 2025
a0e5446
upstream: typos: a ssh* -> an ssh*
Oct 4, 2025
b9a640a
upstream: If write() returned short, the subsequent write would restart
daztucker Oct 3, 2025
981bb32
upstream: openssh-10.1
djmdjm Oct 6, 2025
2fd0945
sync ssh-copy-id to upstream version 527be673f4d
djmdjm Oct 6, 2025
af95657
update versions
djmdjm Oct 6, 2025
476bab6
depend
djmdjm Oct 6, 2025
1dfb2c1
autogenerated files for release
djmdjm Oct 6, 2025
dbb7890
Final merge of 10.1p1 branch into HPN-SSH
rapier1 Oct 6, 2025
5720469
Remove compiled man pages
rapier1 Oct 6, 2025
beae06f
upstream: don't reuse c->isatty for signalling that the remote channel
djmdjm Oct 7, 2025
52411f1
Add clock_gettime compat shim.
daztucker Oct 7, 2025
33b6371
Add 10.1 branch to ci-status page.
daztucker Oct 7, 2025
0bd6649
Don't copy native host keys for hostbased test.
daztucker Oct 7, 2025
8aa1383
Only set PAM_RHOST if the remote host is not "UNKNOWN"
DaanDeMeyer Mar 20, 2023
c97b931
Add fcntl.h to includes.
daztucker Oct 7, 2025
8d57083
Use calloc for sshkeys if mmap is not supported.
daztucker Oct 7, 2025
b937061
Check HAVE_MMAP too now that configure sets it.
daztucker Oct 7, 2025
bcf7c05
Fix header name and move return outside of ifdef.
daztucker Oct 8, 2025
af17ae6
complete PKCS#11 stubs and move to ssh-pkcs11.c
djmdjm Oct 9, 2025
684f2ce
some fixes to p11_setup
djmdjm Oct 9, 2025
e490135
link ssh-keygen directly against ssh-pkcs11.c
djmdjm Oct 8, 2025
ea9af29
upstream: fix crash at exit (visible via ssh-keygen -D) when
djmdjm Oct 8, 2025
ecd65a4
upstream: openssh-10.2
djmdjm Oct 8, 2025
1d2676f
update versions
djmdjm Oct 9, 2025
2d8a388
depend
djmdjm Oct 10, 2025
d01efaa
autogenerated files for release
djmdjm Oct 10, 2025
71ba7c6
Merge of 10.1P2.
rapier1 Oct 13, 2025
270aaba
Updated Changelog
rapier1 Oct 13, 2025
21826c5
Updated version to 18.8.0
rapier1 Oct 13, 2025
11ac5cb
Trtying to streamline the CI testing
rapier1 Oct 21, 2025
9985e7c
Turns out that I can just disable the workflows from github
rapier1 Oct 21, 2025
8d12770
Added DynamicWindow branch to CI tests
rapier1 Oct 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
30 changes: 13 additions & 17 deletions .depend

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions .github/ci-status.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
master :
[![C/C++ CI](../../../actions/workflows/c-cpp.yml/badge.svg)](../../../actions/workflows/c-cpp.yml?query=branch:master)
[![VM CI](../../../actions/workflows/vm.yml/badge.svg)](../../../actions/workflows/vm.yml?query=branch:master)
[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:master)
[![Upstream self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml?query=branch:master)
[![CIFuzz](../../../actions/workflows/cifuzz.yml/badge.svg)](../../../actions/workflows/cifuzz.yml)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/openssh.svg)](https://issues.oss-fuzz.com/issues?q="Project:+openssh"+is:open)
[![Coverity Status](https://scan.coverity.com/projects/21341/badge.svg)](https://scan.coverity.com/projects/openssh-portable)
<br>

10.1 :
[![C/C++ CI](../../../actions/workflows/c-cpp.yml/badge.svg?branch=V_10_1)](../../../actions/workflows/c-cpp.yml?query=branch:V_10_1)
[![VM CI](../../../actions/workflows/vm.yml/badge.svg?branch=V_10_1)](../../../actions/workflows/vm.yml?query=branch:V_10_1)
[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_10_1)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_10_1)

10.0 :
[![C/C++ CI](../../../actions/workflows/c-cpp.yml/badge.svg?branch=V_10_0)](../../../actions/workflows/c-cpp.yml?query=branch:V_10_0)
[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_10_0)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_10_0)

9.9 :
[![C/C++ CI](../../../actions/workflows/c-cpp.yml/badge.svg?branch=V_9_9)](../../../actions/workflows/c-cpp.yml?query=branch:V_9_9)
[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_9)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_9)
75 changes: 75 additions & 0 deletions .github/install_libcrypto.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/bin/sh
#
# Install specified libcrypto.
# -a : install version for ABI compatibility test.
# -n : dry run, don't actually build and install.
#
# Usage: $0 [-a] [-n] openssl-$branch/tag destdir [config options]

set -e

bincompat_test=""
dryrun=""
while [ "$1" = "-a" ] || [ "$1" = "-n" ]; do
if [ "$1" = "-a" ]; then
abi_compat_test=y
elif [ "$1" = "-n" ]; then
dryrun="echo dryrun:"
fi
shift
done

ver="$1"
destdir="$2"
opts="$3"

if [ -z "${ver}" ] || [ -z "${destdir}" ]; then
echo tag/branch and destdir required
exit 1
fi

set -x

if [ ! -d ${HOME}/openssl ]; then
cd ${HOME}
git clone https://github.com/openssl/openssl.git
cd ${HOME}/openssl
git fetch --all
fi
cd ${HOME}/openssl

if [ "${abi_compat_test}" = "y" ]; then
echo selecting ABI test release/branch for ${ver}
case "${ver}" in
openssl-3.6)
ver=openssl-3.0.0
echo "selecting older release ${ver}"
;;
openssl-3.[012345])
major=$(echo ${ver} | cut -f1 -d.)
minor=$(echo ${ver} | cut -f2 -d.)
ver="${major}.$((${minor} + 1))"
echo selecting next release branch ${ver}
;;
openssl-3.*.*)
major=$(echo ${ver} | cut -f1 -d.)
minor=$(echo ${ver} | cut -f2 -d.)
patch=$(echo ${ver} | cut -f3 -d.)
ver="${major}.${minor}.$((${patch} + 1))"
echo checking for release tag ${ver}
if git tag | grep -q "^${ver}\$"; then
echo selected next patch release ${ver}
else
ver="${major}.${minor}"
echo not found, selecting release branch ${ver}
fi
;;
esac
fi

git checkout ${ver}
make clean >/dev/null 2>&1 || true
${dryrun} ./config no-threads shared ${opts} --prefix=${destdir} \
-Wl,-rpath,${destdir}/lib64
${dryrun} make -j4
${dryrun} sudo make install_sw
37 changes: 37 additions & 0 deletions .github/install_putty.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/bin/sh

ver="$1"

echo
echo --------------------------------------
echo Installing PuTTY version ${ver}
echo --------------------------------------

cd /tmp

case "${ver}" in
snapshot)
tarball=putty.tar.gz
url=https://tartarus.org/~simon/putty-snapshots/${tarball}
;;
*)
tarball=putty-${ver}.tar.gz
url=https://the.earth.li/~sgtatham/putty/${ver}/${tarball}
;;
esac

if [ ! -f ${tarball} ]; then
wget -q ${url}
fi

mkdir -p /tmp/puttybuild
cd /tmp/puttybuild

tar xfz /tmp/${tarball} && cd putty-*
if [ -f CMakeLists.txt ]; then
cmake . && cmake --build . -j4 && sudo cmake --build . --target install
else
./configure && make -j4 && sudo make install
fi
sudo rm -rf /tmp/puttybuild
/usr/local/bin/plink -V
12 changes: 11 additions & 1 deletion .github/run_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ if [ ! -z "$SUDO" ] && [ ! -z "$TEST_SSH_HOSTBASED_AUTH" ]; then
hostname | $SUDO tee $sshconf/shosts.equiv >/dev/null
echo "EnableSSHKeysign yes" | $SUDO tee $sshconf/ssh_config >/dev/null
$SUDO mkdir -p $sshconf
$SUDO cp -p /etc/ssh/ssh_host*key* $sshconf
$SUDO make install
for key in $sshconf/ssh_host*key*.pub; do
echo `hostname` `cat $key` | \
Expand All @@ -35,6 +34,17 @@ if [ ! -z "${env}" ]; then
env="env${env}"
fi

if [ "$1" = "putty-versions" ]; then
for ver in 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80 \
0.81 0.82 0.83 snapshot; do
.github/install_putty.sh "${ver}"
${env} make ${TEST_TARGET} \
SKIP_LTESTS="${SKIP_LTESTS}" LTESTS="${LTESTS}"
done

exit 0
fi

if [ -z "${LTESTS}" ]; then
${env} make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}"
else
Expand Down
45 changes: 20 additions & 25 deletions .github/setup_ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ for TARGET in $TARGETS; do
PACKAGES="${PACKAGES} cmake ninja-build"
;;
putty-*)
INSTALL_PUTTY=$(echo "${TARGET}" | cut -f2 -d-)
INSTALL_PUTTY=0.83
PACKAGES="${PACKAGES} cmake"
;;
valgrind*)
Expand Down Expand Up @@ -225,13 +225,8 @@ if [ "${INSTALL_HARDENED_MALLOC}" = "yes" ]; then
fi

if [ ! -z "${INSTALL_OPENSSL}" ]; then
(cd ${HOME} &&
git clone https://github.com/openssl/openssl.git &&
cd ${HOME}/openssl &&
git checkout ${INSTALL_OPENSSL} &&
./config no-threads shared ${SSLCONFOPTS} \
--prefix=/opt/openssl &&
make && sudo make install_sw)
.github/install_libcrypto.sh \
"${INSTALL_OPENSSL}" /opt/openssl "${SSLCONFOPTS}"
fi

if [ ! -z "${INSTALL_LIBRESSL}" ]; then
Expand Down Expand Up @@ -278,25 +273,25 @@ if [ ! -z "${INSTALL_ZLIB}" ]; then
fi

if [ ! -z "${INSTALL_PUTTY}" ]; then
ver="${INSTALL_PUTTY}"
case "${INSTALL_PUTTY}" in
snapshot)
tarball=putty.tar.gz
(cd /tmp && wget https://tartarus.org/~simon/putty-snapshots/${tarball})
;;
*)
tarball=putty-${ver}.tar.gz
(cd /tmp && wget https://the.earth.li/~sgtatham/putty/${ver}/${tarball})
.github/install_putty.sh "${INSTALL_PUTTY}"
fi

# If we're running on an ephemeral VM, set a random password and set
# up to run the password auth test.
if [ ! -z "${EPHEMERAL_VM}" ]; then

# This is the github "target" as specified in the yml file.
# In particular, ubuntu-latest sets the password field to the locked
# value, so unless we reset it here most of the tests will fail.
case "${target}" in
ubuntu-*)
echo ${target} target: setting random password.
openssl rand -base64 9 >regress/password
pw=$(tr -d '\n' <regress/password | openssl passwd -6 -stdin)
sudo usermod --password "${pw}" runner
sudo usermod --unlock runner
;;
esac
(cd ${HOME} && tar xfz /tmp/${tarball} && cd putty-*
if [ -f CMakeLists.txt ]; then
cmake . && cmake --build . && sudo cmake --build . --target install
else
./configure && make && sudo make install
fi
)
/usr/local/bin/plink -V
fi

# If we're running on an ephemeral VM, set a random password and set
Expand Down
58 changes: 34 additions & 24 deletions .github/workflows/c-cpp.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
name: C/C++ CI
name: CI

# For testing, you can set variables in your repo (Repo -> Settings ->
# Security -> Actions -> Variables) to restrict the tests that are run.
# The supported variables are:
#
# RUN_ONLY_TARGET_CONFIG: Run only the single matching target and config,
# separated by spaces, eg "ubuntu-latest default". All other tests will
# fail immediately.
#
# LTESTS: Override the set of tests run.

# For testing, you can set variables in your repo (Repo -> Settings ->
# Security -> Actions -> Variables) to restrict the tests that are run.
Expand All @@ -12,11 +22,11 @@ name: C/C++ CI

on:
push:
branches: [ master, dev_major, dev_minor ]
paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/c-cpp.yml' ]
branches: [ master, dev_major, dev_minor, DynamicWindow ]
# paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/*.sh', '.github/workflows/c-cpp.yml' ]
pull_request:
branches: [ master, dev_major, dev_minor ]
paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/c-cpp.yml' ]
branches: [ master, dev_major, dev_minor, DynamicWindow ]
# paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/*.sh', '.github/workflows/c-cpp.yml' ]

jobs:
ci:
Expand Down Expand Up @@ -87,41 +97,36 @@ jobs:
# - { target: ubuntu-latest, config: libressl-3.4.3 }
# - { target: ubuntu-latest, config: libressl-3.5.3 }
# - { target: ubuntu-latest, config: libressl-3.6.1 }
- { target: ubuntu-latest, config: libressl-3.7.2 }
- { target: ubuntu-latest, config: libressl-3.7.3 }
- { target: ubuntu-latest, config: libressl-3.8.4 }
- { target: ubuntu-latest, config: libressl-3.9.2 }
- { target: ubuntu-latest, config: libressl-4.0.0 }
- { target: ubuntu-latest, config: libressl-4.1.0 }
- { target: ubuntu-latest, config: openssl-master }
- { target: ubuntu-latest, config: openssl-noec }
- { target: ubuntu-latest, config: openssl-1.1.1 }
- { target: ubuntu-latest, config: openssl-1.1.1t }
- { target: ubuntu-latest, config: openssl-1.1.1w }
- { target: ubuntu-latest, config: openssl-3.0.0 }
- { target: ubuntu-latest, config: openssl-3.0.15 }
- { target: ubuntu-latest, config: openssl-3.0.18 }
- { target: ubuntu-latest, config: openssl-3.1.0 }
- { target: ubuntu-latest, config: openssl-3.1.7 }
- { target: ubuntu-latest, config: openssl-3.2.3 }
- { target: ubuntu-latest, config: openssl-3.3.2 }
- { target: ubuntu-latest, config: openssl-3.1.8 }
- { target: ubuntu-latest, config: openssl-3.2.6 }
- { target: ubuntu-latest, config: openssl-3.3.5 }
- { target: ubuntu-latest, config: openssl-3.4.0 }
- { target: ubuntu-latest, config: openssl-3.4.3 }
- { target: ubuntu-latest, config: openssl-3.5.0 }
- { target: ubuntu-latest, config: openssl-3.5.3 } # keep
- { target: ubuntu-latest, config: openssl-3.5.4 }
- { target: ubuntu-latest, config: openssl-1.1.1_stable }
- { target: ubuntu-latest, config: openssl-3.0 } # stable branch
- { target: ubuntu-latest, config: openssl-3.1 } # stable branch
- { target: ubuntu-latest, config: openssl-3.2 } # stable branch
- { target: ubuntu-latest, config: openssl-3.3 } # stable branch
- { target: ubuntu-latest, config: putty-0.71 }
- { target: ubuntu-latest, config: putty-0.72 }
- { target: ubuntu-latest, config: putty-0.73 }
- { target: ubuntu-latest, config: putty-0.74 }
- { target: ubuntu-latest, config: putty-0.75 }
- { target: ubuntu-latest, config: putty-0.76 }
- { target: ubuntu-latest, config: putty-0.77 }
- { target: ubuntu-latest, config: putty-0.78 }
- { target: ubuntu-latest, config: putty-0.79 }
- { target: ubuntu-latest, config: putty-0.80 }
- { target: ubuntu-latest, config: putty-0.81 }
- { target: ubuntu-latest, config: putty-0.82 }
- { target: ubuntu-latest, config: putty-0.83 }
- { target: ubuntu-latest, config: putty-snapshot }
- { target: ubuntu-latest, config: openssl-3.4 } # stable branch
- { target: ubuntu-latest, config: openssl-3.5 } # stable branch
- { target: ubuntu-latest, config: openssl-3.6 } # stable branch
- { target: ubuntu-latest, config: putty-versions }
- { target: ubuntu-latest, config: zlib-develop }
- { target: ubuntu-latest, config: tcmalloc }
#musl doens't know about linux/tcp.h so skip
Expand Down Expand Up @@ -173,6 +178,11 @@ jobs:
TEST_SSH_UNSAFE_PERMISSIONS: 1
TEST_SSH_HOSTBASED_AUTH: yes
LTESTS: ${{ vars.LTESTS }}
- name: test OpenSSL3 ABI compatibility
if: ${{ startsWith(matrix.config, 'openssl-3') }}
run: |
sh .github/install_libcrypto.sh -a ${{ matrix.config }} /opt/openssl
sh .github/run_test.sh ${{ matrix.config }}
- name: show logs
if: failure()
run: for i in regress/failed*.log; do echo ====; echo logfile $i; echo =====; cat $i; done
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/selfhosted.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: C/C++ CI self-hosted
name: CI self-hosted

on:
push:
paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/selfhosted.yml' ]
paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/run_tests.sh', '.github/workflows/selfhosted.yml' ]

jobs:
selfhosted:
Expand Down
Loading
Loading