@@ -79,14 +79,21 @@ The mechanism has two directions, controlled by different endpoints:
7979 the requester decides to chunk its own outbound request; a responder cannot
8080 force it.
8181
82- Every request wolfSPDM builds (GET_VERSION through GET_MEASUREMENTS,
83- KEY_EXCHANGE, FINISH) is small and fixed, well under any responder's
84- ` DataTransferSize ` , so ` CHUNK_SEND ` is never needed — it is not applicable to
85- this library's traffic rather than missing. ` CHUNK_CAP ` advertises support for
86- the large-message mechanism; it does not obligate an endpoint to chunk requests
87- it never sends, so a requester that only emits small requests is fully
88- conformant supporting ` CHUNK_GET ` alone. ` CHUNK_SEND ` / ` CHUNK_SEND_ACK ` are
89- defined in ` spdm_types.h ` for completeness but intentionally unimplemented.
82+ Almost every request wolfSPDM builds (GET_VERSION through GET_MEASUREMENTS,
83+ FINISH) is small and fixed, well under any responder's ` DataTransferSize ` . The
84+ one exception is an ** ML-KEM** KEY_EXCHANGE, whose ` ExchangeData ` carries the
85+ encapsulation key ` ek ` (800/1184/1568 B for ML-KEM-512/768/1024) — a request of
86+ ~ 870–1640 B. This still fits common responders (e.g. spdm-emu advertises
87+ 4608 B), but a constrained responder could advertise a smaller
88+ ` DataTransferSize ` . Because ` CHUNK_SEND ` is unimplemented, ` wolfSPDM_KeyExchange `
89+ ** fails fast** (` WOLFSPDM_E_BUFFER_SMALL ` ) when the built request exceeds the
90+ responder's ` DataTransferSize ` rather than emit a non-conformant oversized
91+ message — so the library never sends something it cannot chunk.
92+
93+ ` CHUNK_CAP ` advertises support for the large-message mechanism; it does not
94+ obligate an endpoint to chunk requests it never sends. ` CHUNK_SEND ` /
95+ ` CHUNK_SEND_ACK ` are defined in ` spdm_types.h ` for completeness but intentionally
96+ unimplemented; the fail-fast guard keeps that conformant.
9097
9198## References
9299
0 commit comments