Skip to content

Merge V10.1P1 - #871

Open
Tess Gauthier (tgauth) wants to merge 396 commits into
PowerShell:latestw_allfrom
tgauth:merge-v10.1P1
Open

Merge V10.1P1#871
Tess Gauthier (tgauth) wants to merge 396 commits into
PowerShell:latestw_allfrom
tgauth:merge-v10.1P1

Conversation

@tgauth

Copy link
Copy Markdown
Collaborator

PR Summary

PR Context

  • sync w/ upstream's V_10_0_P1 tag

Darren Tucker (daztucker) and others added 30 commits July 24, 2025 22:02
If needed it can be set in github if needed.
The PKCS#11 code in OpenSSH used the libcrypto public key method API
(e.g. the delightfully named RSA_meth_free()) to delegate signing
operations to external keys. This had one advantage - that it was
basically transparent to callers, but also had a big disadvantage -
that we'd manually have to track the method implementations, their
state and their relationships to the underlying PKCS#11 objects.

This rips this out and replaces it with explicit delegation to
PKCS#11 code for externally hosted keys via the ssh-pkcs11-helper
subprocess. This is very similar to how we handle FIDO keys in
OpenSSH (i.e. via ssh-sk-helper). All we need to track now is a
much simpler mapping of public key -> helper subprocess.

Kicking our libcrypto meth dependency also makes it much easier
to support Ed25519 keys in PKCS#11, which will happen in a subsequent
commit.

feedback / ok tb@

OpenBSD-Commit-ID: a5a1eaf57971cf15e0cdc5a513e313541c8a35f0
ssh form into a separate function

OpenBSD-Commit-ID: 3711c6d6b52dde0bd1f17884da5cddb8716f1b64
from tb@

OpenBSD-Commit-ID: 9fda77978491a130a7b77d87d40c79277b796721
OpenBSD-Commit-ID: 1c0cc5c3838344b33ae4ab7aa62c01530357bf29
sshkey.c is included

OpenBSD-Regress-ID: 9d07188eae9a96801c3150b3433bb220626d4443
OpenBSD-Commit-ID: 6e0c268e40047e96fab6bc56dc340580b537183b
feedback/ok tb@

OpenBSD-Commit-ID: e67fa6a26e515c2b1fb7b0d1519d138aafb3e017
Tested on Yubikeys and against SoftHSM2.

feedback/ok tb@

OpenBSD-Commit-ID: 90ddb6529f2e12e98e8bba21d8592e60579ce2e4
OpenBSD-Regress-ID: 50067c0716abfea3a526b4a0c8f1fe15e7665c0f
OpenBSD-Commit-ID: 5612e979575d5da933c8b720d296423fd84392f5
keys to be used via PKCS#11 when OpenSSH is built without libcrypto.

OpenBSD-Commit-ID: ecf26fdf7591bf2c98bac5136fbc36e0b59c3fc2
483725, ok djm@

OpenBSD-Commit-ID: 47cf7b399c84e102b670b9f97ab6926c9a7256b5
Run 64bit bigendian interop test on NetBSD arm64be instead.
This works on filesystems mounted 'noatime', but on others the stat()
resets atime causing the test to fail.
Forwarding (EF)

Marking interactive session data with DSCP value EF (RFC3246, RFC3247)
helps inform the network on relative priority compared to other traffic.
This is especially useful for differentiated treatment over wireless media.

Following the reconciled IETF Diffserv to IEEE 802.11 mappings (RFC 8325),
traffic marked with DSCP value EF maps to User Priority 6 in QoS Control,
in turn mapping to the high priority WMM AC_VO access category.

OK djm@

OpenBSD-Commit-ID: aadda7b9da794d70d7c6b381a861a0610afce1b3
keywords

Type of Service (ToS) was deprecated in the late nineties and replaced
with the Differentiated Services architecture. Diffserv has significant
advantages for operators because this mechanism offers more granularity.

OpenSSH switched its default IPQoS from ToS to DSCP values in 2018.

IPQoS configurations with 'lowdelay', 'reliability', or 'throughput' will be
ignored and instead the system default QoS settings apply. Additionally, a
debug message is logged about the deprecation with a suggestion to use DSCP.

with/OK deraadt@ sthen@ djm@

OpenBSD-Commit-ID: 40c8c0c5cb20151a348728703536af2ec1c754ba
and I-Ds that are more complete and detailed than what we have in the
PROTOCOL.* files. Refer to these when possible instead of documenting them
here.

OpenBSD-Commit-ID: 4fa5b0fcf5d5f24093d33d9e82c7ca4850d50d70
non-interactive traffic

It seems the CS1 traffic class mark is considered ambiguous and therefore
somewhat unhelpful (see RFC 8622 for more considerations). But, the new
'LE' scavenger class (also proposed in RFC 8622) offers high probability
of excessive delays & high packet loss, which would be inappropriate
for use with, for example, X11 forwardings. In fact, it is not known to
SSH what's appropriate because SSH is not aware of the content of what
passing through session forwardings. Therefore, no marking is appropriate.
Non-interactive traffic simply is best effort.

OK djm@ deraadt@

OpenBSD-Commit-ID: db1da1a432ecd53fc28feb84287aedb6bec80b01
enough information to identify the certificate in addition to the reason why
it was being denied. Makes debugging certificate authz problems a bit easier.

ok dlg@

OpenBSD-Commit-ID: 4c4621b2e70412754b3fe7540af8f4bf02b722b1
OpenBSD-Commit-ID: 9c481ddd6bad110af7e530ba90db41f6d5fe2273
struct ssh or struct packet_state; one static int escaped this rule, so move
it to struct packet_state now.

ok millert tb

OpenBSD-Commit-ID: bd6737168bf61a836ffbdc99ee4803468db90a53
Tess Gauthier (tgauth) and others added 23 commits April 15, 2026 12:21
Range only accepts range expressions or refs; passing git log flags like -1 yields MCP error -32603. Updated Phase 1 step 3 to use a terminal command for capturing the starting commit.
Two changes to the upstream-merge workflow guidance:

1. Disable git rerere. The two-phase workflow copies resolved files from the scratch branch to the real merge branch, so rerere recording adds no value and can silently auto-apply (possibly incomplete) cached resolutions, making conflict decisions opaque. Updated merge-process-overview, merge-details, agent-communication-merge, merge-upstream.agent, and removed the rerere example from Invoke-Git.ps1.

2. Default per-batch validation to Test-OpenSSHFunctionality (cheap end-to-end smoke test) instead of the full CI suite (Invoke-OpenSSHTests TestSuite=All). The full suite is only run when the user explicitly requests it, before the real branch transition, or before opening the PR. Updated overview, details, and agent.md Phase 3/4 + summary template accordingly.
Remove-LocalUser does not delete the C:\Users\<name> profile folder that
Windows creates on first SSH login, leaving clutter behind. Capture the
user SID at creation and remove the profile via Win32_UserProfile (with
folder/path fallbacks) during cleanup.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Port Get-CommitGroups.ps1 from scratch-merge-v10.3P1-20260420 (commit
9b9af0d) so a rate-limited GitHub API response aborts the run instead
of being silently treated as an unknown CI status and emitting a bogus
batch.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Clean up test user profile folder and harden Get-CommitGroups rate-limit handling
Document the risk that upstream additions/modifications to a regress/*.sh file already containing 'if [ os == windows ]' blocks merge verbatim (no Git conflict) and can reintroduce Unix-only assumptions such as a plain diff instead of diff --strip-trailing-cr. Adds Pattern 5 and a Common Conflict Patterns bullet, using the cfgparse.sh MaxStartups case from the 10.3 merge as the example.
- Restore HAVE_PATHS_H/HAVE_ENDIAN_H include guards lost to upstream KNF header reorders (session.c, readpass.c, umac.c, kexmlkem768x25519.c, and others)

- Add upstream misc-agent.c to sshd-auth/sshd-session vcxproj (new agent_listener helper); drop stale ssh-dss.c ref

- Adopt openbsd-compat clock_gettime shim (CLOCK_REALTIME) and remove win32compat duplicate

- Add S_ISSOCK macro to win32compat sys/stat.h for upstream misc-agent.c

- Add benchmarks() stub to win32compat unit test for upstream test_helper benchmark framework
Copilot AI lite review requested due to automatic review settings August 20, 2026 16:14
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@tgauth

Copy link
Copy Markdown
Collaborator Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@tgauth Tess Gauthier (tgauth) changed the title Merge v10.1 p1 Merge V10.1P1 Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants