From 3d40022c2dd0d48065b3e90b43c90dbfbd47bcb0 Mon Sep 17 00:00:00 2001 From: emanuel Date: Wed, 27 Jul 2022 20:48:33 +0100 Subject: [PATCH] Fix TPM.req fwd to [app] in TLS mode --- src/facilities.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/facilities.c b/src/facilities.c index 37566c1..e5111d5 100644 --- a/src/facilities.c +++ b/src/facilities.c @@ -366,6 +366,25 @@ static int transport_indication(facilities_t *facilities, void* responder, void* } if (!dec.code) { tpm_recv(facilities, its_msg, security_socket, NULL, tpi->choice.tcp.sourceAddress->buf); + + // Fwd to [applications] + fi = calloc(1, sizeof(FacilitiesIndication_t)); + fi->present = FacilitiesIndication_PR_message; + FacilitiesMessageIndication_t* fmi = &fi->choice.message; + + fmi->id = id; + + fmi->itsMessageType = 7011; + + fmi->data.size = srep->data->choice.tlsRecv.data.size; + fmi->data.buf = malloc(srep->data->choice.tlsRecv.data.size); + memcpy(fmi->data.buf, srep->data->choice.tlsRecv.data.buf,srep->data->choice.tlsRecv.data.size); + + uint8_t buffer[ITSS_SDU_MAX_LEN]; + buffer[0] = 4; // Facilities + asn_enc_rval_t enc = oer_encode_to_buffer(&asn_DEF_FacilitiesIndication, NULL, fi, buffer+1, ITSS_SDU_MAX_LEN-1); + + itss_queue_send(facilities->tx_queue, buffer, enc.encoded+1, ITSS_APPLICATIONS, id, "FI.message"); } } }