Skip to content

OpenSSL 3.5: QUIC_TLS_SECRETS is missing some fields #5218

@ManickaP

Description

@ManickaP

Disclaimer: not a TLS expert here 😄

Using OpenSSL 3.5 build of MsQuic.

When trying to log TLS secrets for SSLKEYLOGFILE, the struct is missing all of its fields apart from ClientRandom. Despite having flags set for ClientHandshakeTrafficSecret and ServerHandshakeTrafficSecret.

cc @rzikm @nhorman

For comparison, our logs from quictls version of MsQuic, both client and server at the same time:

16:24:32.4066395[Info] thisOrContextObject: QuicConnection#55530882, memberName: NativeCallback, message: [conn][0x55D387C9A010] Received event PEER_CERTIFICATE_RECEIVED { DeferredStatus = 0, DeferredErrorFlags = 0, Certificate = 0x7EC598FF8530 }
  16:24:32.4076835[Info] thisOrContextObject: (null), memberName: WriteSecret, message: WriteSecret: 1, 1, 1, 0, 0, 0
  Writing CLIENT_HANDSHAKE_TRAFFIC_SECRET of length 48
  Writing SERVER_HANDSHAKE_TRAFFIC_SECRET of length 48
  CLIENT_TRAFFIC_SECRET_0 is empty
  SERVER_TRAFFIC_SECRET_0 is empty
  CLIENT_EARLY_TRAFFIC_SECRET is empty

16:24:32.4309954[Info] thisOrContextObject: QuicConnection#55530882, memberName: NativeCallback, message: [conn][0x55D387C9A010] Received event CONNECTED { SessionResumed = 0 }
  16:24:32.4317297[Info] thisOrContextObject: (null), memberName: WriteSecret, message: WriteSecret: 1, 0, 0, 1, 1, 0
  CLIENT_HANDSHAKE_TRAFFIC_SECRET is empty
  SERVER_HANDSHAKE_TRAFFIC_SECRET is empty
  Writing CLIENT_TRAFFIC_SECRET_0 of length 48
  Writing SERVER_TRAFFIC_SECRET_0 of length 48
  CLIENT_EARLY_TRAFFIC_SECRET is empty

16:24:32.4331037[Info] thisOrContextObject: QuicConnection#37489757, memberName: NativeCallback, message: [conn][0x7EC58C0129C0] Received event CONNECTED { SessionResumed = 0 }
  16:24:32.4331459[Info] thisOrContextObject: (null), memberName: WriteSecret, message: WriteSecret: 1, 1, 1, 1, 1, 0
  Writing CLIENT_HANDSHAKE_TRAFFIC_SECRET of length 48
  Writing SERVER_HANDSHAKE_TRAFFIC_SECRET of length 48
  Writing CLIENT_TRAFFIC_SECRET_0 of length 48
  Writing SERVER_TRAFFIC_SECRET_0 of length 48
  CLIENT_EARLY_TRAFFIC_SECRET is empty

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: CoreRelated to the shared, core protocol logic

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions