Document libspdm requirements and assumptions for target compiler and system
This is more to raise awareness rather than fix a bug, although we could fix the bug too since this is security-critical code. spdm_init_context zeros out spdm_context via zero_mem(spdm_context, sizeof(spdm_context_t));
Later on checks are performed such as if (spdm_context->local_context.local_cert_chain_provision[slot_id] == NULL)
The C language does not guarantee that a pointer that has been memset to 0 evaluate to NULL. At the very least we should document this in a "language implementation decisions" document.
Need a document in the doc/ folder that goes over assumptions.
libspdm also assumes that the underlying encoding of character constants is ASCII.
libspdm also assumes that the compiler supports pragma pack.
libspdm assumes little endian architecture. Once that has been documented then this can be closed.