Preamble Parameters: - context, optional shared context information. Input: - client_identity, the optional encoded client identity, which is set to client_public_key if not specified. - ke1, a KE1 message structure. - server_identity, the optional encoded server identity, which is set to server_public_key if not specified. - credential_response, the corresponding field on the KE2 structure. - server_nonce, the corresponding field on the AuthResponse structure. - server_public_keyshare, the corresponding field on the AuthResponse structure. Output: - preamble, the protocol transcript with identities and messages. def Preamble(client_identity, ke1, server_identity, credential_response, server_nonce, server_public_keyshare): preamble = concat("OPAQUEv1-", I2OSP(len(context), 2), context, I2OSP(len(client_identity), 2), client_identity, ke1, I2OSP(len(server_identity), 2), server_identity, credential_response, server_nonce, server_public_keyshare) return preamble