Stop forwarding the crypto method header to hosting SDKs

- removes CryptoMethodHeader from the router's peer header request mappings, so a
  dialing client's value no longer reaches circuit data
- removes the matching forwarding from all three xgress_edge dial paths
- drops the changelog entry for e2ee scheme negotiation, which this un-ships
This commit is contained in:
Paul Lorenz
2026-08-21 16:12:08 -04:00
parent c99e1b8483
commit a3e2c92ecf
3 changed files with 4 additions and 13 deletions
-1
View File
@@ -180,7 +180,6 @@ controller and add new peers normally with `ziti ops cluster add`.
### End-to-End Encryption (e2ee) Improvements
* Add support for negotiating e2ee scheme during Dial/Accept handshake
* Allow hosting-side crypto material to be generated on per connection basis (instead of per terminator)
-11
View File
@@ -132,10 +132,6 @@ func (dialer *dialer) Dial(params xgress_router.DialParams) (xt.PeerData, error)
dialRequest.Headers[edgeSdk.PublicKeyHeader] = pk
}
if meth, ok := circuitId.Data[uint32(edgeSdk.CryptoMethodHeader)]; ok {
dialRequest.Headers[edgeSdk.CryptoMethodHeader] = meth
}
if marker, ok := circuitId.Data[uint32(edgeSdk.ConnectionMarkerHeader)]; ok {
dialRequest.Headers[edgeSdk.ConnectionMarkerHeader] = marker
}
@@ -234,10 +230,6 @@ func (dialer *dialer) dialSdkXgress(terminator *edgeTerminator, params xgress_ro
dialRequest.Headers[edgeSdk.PublicKeyHeader] = pk
}
if meth, ok := circuitId.Data[uint32(edgeSdk.CryptoMethodHeader)]; ok {
dialRequest.Headers[edgeSdk.CryptoMethodHeader] = meth
}
if marker, ok := circuitId.Data[uint32(edgeSdk.ConnectionMarkerHeader)]; ok {
dialRequest.Headers[edgeSdk.ConnectionMarkerHeader] = marker
}
@@ -334,9 +326,6 @@ func (dialer *dialer) dialLegacy(terminator *edgeTerminator, params xgress_route
if pk, ok := circuitId.Data[uint32(edgeSdk.PublicKeyHeader)]; ok {
dialRequest.Headers[edgeSdk.PublicKeyHeader] = pk
}
if meth, ok := circuitId.Data[uint32(edgeSdk.CryptoMethodHeader)]; ok {
dialRequest.Headers[edgeSdk.CryptoMethodHeader] = meth
}
if marker, ok := circuitId.Data[uint32(edgeSdk.ConnectionMarkerHeader)]; ok {
dialRequest.Headers[edgeSdk.ConnectionMarkerHeader] = marker
+4 -1
View File
@@ -58,9 +58,12 @@ import (
"google.golang.org/protobuf/types/known/timestamppb"
)
// CryptoMethodHeader is deliberately absent. The Go and C SDKs encode it differently under the same
// header id, a numeric enum byte versus a string method id, so handing a client's value to a host
// running the other SDK fails that host's method check. Unmapped, each end keeps its own default.
// Restore it once the SDKs agree on one encoding.
var peerHeaderRequestMappings = map[uint32]uint32{
uint32(sdkedge.PublicKeyHeader): uint32(sdkedge.PublicKeyHeader),
uint32(sdkedge.CryptoMethodHeader): uint32(sdkedge.CryptoMethodHeader),
uint32(sdkedge.CallerIdHeader): uint32(sdkedge.CallerIdHeader),
uint32(sdkedge.AppDataHeader): uint32(sdkedge.AppDataHeader),
uint32(sdkedge.ConnectionMarkerHeader): uint32(sdkedge.ConnectionMarkerHeader),