Tool/software:
I am trying to make a secure MQTT connection using a client certificate and key. I have generated the client files and need to use them when connecting.
It looks like the files need to be listed in the "secure_files" list. I have the file names listed like this:
const char *Mqtt_Client_secure_files[CLIENT_NUM_SECURE_FILES] = {"client.key","client.crt","ca-cert.pem",NULL};
I'm having trouble understanding where to place the key and client certificate in my code. Do I build them into the list with the CA cert? or do they sit in separate blocks?
How does the mbed TLS stack know were to locate these certs?
Is there any example showing how to use the MQTTClient library to connect to a MQTT broker using client certificates?
uint16_t ti_net_certificate0Len = sizeof(ti_net_certificate0);
const uint8_t mqtt_certificate0[] =
"-----BEGIN PRIVATE KEY-----\r\n"
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0GQ0e53aBHDbR\r\n"
"8ZjJZjORhRG3s28tVtLRv9g7/9QXdDH/1r0HFWRQuofEGqq3BUar5SdQQMFjOVVV\r\n"
"EmJM5iSq1p+b85+6ePtWuVhl9wlGZanwZjAZkE9Dqb74g5K/2DqMlyRC3/Uvu/ff\r\n"
"jFmxnEKHs8L9Ss7yZk+iCP8QgmWqdN7FE5sAz0E2FI0olt4ui52bBOhExnAqZsmy\r\n"
"dRWYND8MUMrPPTwpw0HX7lz4IhwTju/B4SNR/KFSn2HHq8vEta35Em1I9i3MtLpe\r\n"
"sOAIjYgZsT9mvbu7PND2qvtbrHx6LNXPudUNu92p1N51DAasuFV+bbG4xqRFPcqV\r\n"
"vTHrfavDAgMBAAECggEAGWMEoKFuaNG81TL8tLsa3tLxW0HzFI2OHIdcqEyDgvuG\r\n"
"nB09j8o6AKU37nKh3jhjV2dvIhbBYUbGMBPuK7qEsFjzrnc/l04Rg+PkQZn6l+P3\r\n"
"JLjgOTed7ML4oAMQBHSrACwYA53v69bPy0EiAvGCHACWJmqiqbRhWk0cA0xA9Nor\r\n"
"BKEOiBuMot9bBL4vzYP0Jfo73QfhIsB0MPd6Ov7uRhz+tHN3PG14TQZJ3AgZt4vD\r\n"
"gK9Yzoea2MZTMMzrvIm69onIX7kJU2iGShdiS356/hBLBOrVYj5OGtX3M4jQki7C\r\n"
"/hYeoTtFZZ/Dahcimm9jCW0YKR5lbkeIWvHanFb9eQKBgQDewNF6THmdPf7e+/GY\r\n"
"9j5k+P5svyfnIX2DyLEzPf62hE3Ba+tQjPaOyBReNwP5793k1ySl+yKL3x1aoDiB\r\n"
"wKXbCRmaNtC7RPiIar9tEpSUAaUurf2t05s3sf1YwSwNuX8/+sUBpxxeVfG9N366\r\n"
"qC3AGECmsPIB18Kf43d7qD3CiwKBgQDO+moG/kGfJ3UDp+dSvfH/C+YhKse0bUKM\r\n"
"+dU8MU2TEc13hKIe01trViEMt23df+C2sxsSkS1RTSRIPB152d0BoLh3xGaMeCgJ\r\n"
"Z1iQuKnIfm6MYaFpTHBoC3d5BeHBe/pDAL3O/7mid+JX+CcVbfM7FtEfdP87/kSl\r\n"
"YiYm7kZ6qQKBgBtcb96n2iBYZyAYrlptlMhuVUIiUNJxKKuxUSLMMKdWpP5nNSZV\r\n"
"yktLhET2WQSwU/8x9gx1Ro8Lvt1M5OP7N+Qpv/1TUlxOYoDPK+hH6fwsH5AWSxy4\r\n"
"603yDP6D69dbu6euM9i6IB/uSp1FXcmrssLvt7FB9tgHGp7tH9YOmld1AoGBAJKg\r\n"
"DVqU5jH0Rs3nNVWFYBj4+fdHEiB8QmgSWIACwVzNgMwJdrv1qM66PkF+9GK0w6FJ\r\n"
"8oTNudfdmTVe+NaogwszK1sVFDywplQ7FR+44fY5suDaDPnGf98FOIbQpuRlip3K\r\n"
"uawZtw0kdoExN6bTtDqI6G6reGCsuT6b8EEmDWG5AoGAVx1sRFcErOKKZ3o4DMIE\r\n"
"bPfTnE+piW3yS+zYRLjKMmgTJJO4dCPQLx4FfXir6vhsrfvhdBtVInV4ZXWagtPz\r\n"
"362zAWxveNVE4BlsHqOrbBEGrXfQpgJzDk21neqbLMdtnYJdsbPPZM2zIQiIoWJ0\r\n"
"58k6UYkneqXeIxQ71GIQI9c=\r\n"
"-----END PRIVATE KEY-----\r\n"
"-----BEGIN CERTIFICATE-----\r\n"
"MIIDmjCCAoKgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMCR0Ix\r\n"
"FzAVBgNVBAgMDlVuaXRlZCBLaW5nZG9tMQ4wDAYDVQQHDAVEZXJieTESMBAGA1UE\r\n"
"CgwJTW9zcXVpdHRvMQswCQYDVQQLDAJDQTEWMBQGA1UEAwwNbW9zcXVpdHRvLm9y\r\n"
"ZzEfMB0GCSqGSIb3DQEJARYQcm9nZXJAYXRjaG9vLm9yZzAeFw0yNTAxMjcxODA5\r\n"
"MTZaFw0yNTA0MjcxODA5MTZaMHQxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJWVDES\r\n"
"MBAGA1UEBwwJSGluZXNidXJnMQ4wDAYDVQQKDAVTZW5peDEOMAwGA1UEAwwFU2Vu\r\n"
"aXgxJDAiBgkqhkiG9w0BCQEWFXJvYi5tYWNrbGluQHNlbml4LmNvbTCCASIwDQYJ\r\n"
"KoZIhvcNAQEBBQADggEPADCCAQoCggEBALQZDR7ndoEcNtHxmMlmM5GFEbezby1W\r\n"
"0tG/2Dv/1Bd0Mf/WvQcVZFC6h8QaqrcFRqvlJ1BAwWM5VVUSYkzmJKrWn5vzn7p4\r\n"
"+1a5WGX3CUZlqfBmMBmQT0OpvviDkr/YOoyXJELf9S+799+MWbGcQoezwv1KzvJm\r\n"
"T6II/xCCZap03sUTmwDPQTYUjSiW3i6LnZsE6ETGcCpmybJ1FZg0PwxQys89PCnD\r\n"
"QdfuXPgiHBOO78HhI1H8oVKfYcery8S1rfkSbUj2Lcy0ul6w4AiNiBmxP2a9u7s8\r\n"
"0Paq+1usfHos1c+51Q273anU3nUMBqy4VX5tsbjGpEU9ypW9Met9q8MCAwEAAaMa\r\n"
"MBgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcNAQELBQADggEBABUB\r\n"
"SWKRt6oDBDSX8lmf7scj4MWUn/6pxXfQWG+jzuGyDIyOAnS2GuDoXrws/Gvuz0Vb\r\n"
"QiWu4UG2250WL5/HuGacZhcvX2BkBvES6qaJL86fZdsQwbxRrSiigXWTRrWB+o5F\r\n"
"BIC+0b5kZtLi5nMpkbzlu8sNXauyS1QPNSgH99EJhlXt5FvKiy//c3365jV3H5xc\r\n"
"QMWoAVaX/846e3Y247Q26mz9/yTgm5MhrK2dAYUuPCBs5Ap1pMD9YMHoHXiNNX7H\r\n"
"ZjAfSo3q9ZWVVtEJchGxYMPRf0uMugfboyArFLhn0P8GrYkRTE97RQV1wlkG6nrc\r\n"
"+xKehdjS5cO9NblF3mM=\r\n"
"-----END CERTIFICATE-----\r\n"
"-----BEGIN CERTIFICATE-----\r\n"
"MIIEAzCCAuugAwIBAgIUBY1hlCGvdj4NhBXkZ/uLUZNILAwwDQYJKoZIhvcNAQEL\r\n"
"BQAwgZAxCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwG\r\n"
"A1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1vc3F1aXR0bzELMAkGA1UECwwCQ0ExFjAU\r\n"
"BgNVBAMMDW1vc3F1aXR0by5vcmcxHzAdBgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hv\r\n"
"by5vcmcwHhcNMjAwNjA5MTEwNjM5WhcNMzAwNjA3MTEwNjM5WjCBkDELMAkGA1UE\r\n"
"BhMCR0IxFzAVBgNVBAgMDlVuaXRlZCBLaW5nZG9tMQ4wDAYDVQQHDAVEZXJieTES\r\n"
"MBAGA1UECgwJTW9zcXVpdHRvMQswCQYDVQQLDAJDQTEWMBQGA1UEAwwNbW9zcXVp\r\n"
"dHRvLm9yZzEfMB0GCSqGSIb3DQEJARYQcm9nZXJAYXRjaG9vLm9yZzCCASIwDQYJ\r\n"
"KoZIhvcNAQEBBQADggEPADCCAQoCggEBAME0HKmIzfTOwkKLT3THHe+ObdizamPg\r\n"
"UZmD64Tf3zJdNeYGYn4CEXbyP6fy3tWc8S2boW6dzrH8SdFf9uo320GJA9B7U1FW\r\n"
"Te3xda/Lm3JFfaHjkWw7jBwcauQZjpGINHapHRlpiCZsquAthOgxW9SgDgYlGzEA\r\n"
"s06pkEFiMw+qDfLo/sxFKB6vQlFekMeCymjLCbNwPJyqyhFmPWwio/PDMruBTzPH\r\n"
"3cioBnrJWKXc3OjXdLGFJOfj7pP0j/dr2LH72eSvv3PQQFl90CZPFhrCUcRHSSxo\r\n"
"E6yjGOdnz7f6PveLIB574kQORwt8ePn0yidrTC1ictikED3nHYhMUOUCAwEAAaNT\r\n"
"MFEwHQYDVR0OBBYEFPVV6xBUFPiGKDyo5V3+Hbh4N9YSMB8GA1UdIwQYMBaAFPVV\r\n"
"6xBUFPiGKDyo5V3+Hbh4N9YSMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL\r\n"
"BQADggEBAGa9kS21N70ThM6/Hj9D7mbVxKLBjVWe2TPsGfbl3rEDfZ+OKRZ2j6AC\r\n"
"6r7jb4TZO3dzF2p6dgbrlU71Y/4K0TdzIjRj3cQ3KSm41JvUQ0hZ/c04iGDg/xWf\r\n"
"+pp58nfPAYwuerruPNWmlStWAXf0UTqRtg4hQDWBuUFDJTuWuuBvEXudz74eh/wK\r\n"
"sMwfu1HFvjy5Z0iMDU8PUDepjVolOCue9ashlS4EB5IECdSR2TItnAIiIwimx839\r\n"
"LdUdRudafMu5T5Xma182OC0/u/xRlEm+tvKGGmfFcN0piqVl8OrSPBgIlb+1IKJE\r\n"
"m/XriWr/Cq4h/JfB7NTsezVslgkBaoU=\r\n"
"-----END CERTIFICATE-----\r\n"
;