@@ -165,11 +165,17 @@ void CAtHandler::add_cmds_wifi_SSL() {
165
165
/* Convert client certificate DER buffer into PEM */
166
166
clients_cert_pem[internal_sock].resize (1024 );
167
167
size_t olen;
168
- mbedtls_pem_write_buffer (" -----BEGIN CERTIFICATE-----\n " ,
169
- " -----END CERTIFICATE-----\n " ,
170
- client_cert_der.data (), size,
171
- clients_cert_pem[internal_sock].data (), 1024 ,
172
- &olen);
168
+ int ret = -1 ;
169
+ if ((ret = mbedtls_pem_write_buffer (" -----BEGIN CERTIFICATE-----\n " ,
170
+ " -----END CERTIFICATE-----\n " ,
171
+ client_cert_der.data (), size,
172
+ clients_cert_pem[internal_sock].data (), 1024 ,
173
+ &olen)) != 0 )
174
+ {
175
+ log_e (" failed\n ! mbedtls_pem_write_buffer returned -0x%04x" , (unsigned int ) -ret);
176
+ clients_cert_pem[internal_sock].clear ();
177
+ return chAT::CommandStatus::ERROR;
178
+ }
173
179
clients_cert_pem[internal_sock].resize (olen);
174
180
175
181
#if ECC_DEBUG_ENABLED
@@ -183,7 +189,6 @@ void CAtHandler::add_cmds_wifi_SSL() {
183
189
/* Read private key from non volatile storage in DER format */
184
190
std::vector<unsigned char > client_key_der;
185
191
int len = sse.getBytesLength (slot_num.c_str ());
186
- int ret = -1 ;
187
192
client_key_der.resize (len);
188
193
if ((ret = sse.getBytes (slot_num.c_str (), client_key_der.data (), len)) < len) {
189
194
log_e (" failed\n ! sse.getBytes returned -0x%04x" , (unsigned int ) -ret);
@@ -197,11 +202,16 @@ void CAtHandler::add_cmds_wifi_SSL() {
197
202
198
203
/* Convert private key in PEM format */
199
204
clients_key_pem[internal_sock].resize (1024 );
200
- mbedtls_pem_write_buffer (" -----BEGIN EC PRIVATE KEY-----\n " ,
201
- " -----END EC PRIVATE KEY-----\n " ,
202
- client_key_der.data (), len,
203
- clients_key_pem[internal_sock].data (), 1024 ,
204
- &olen);
205
+ if ((ret = mbedtls_pem_write_buffer (" -----BEGIN EC PRIVATE KEY-----\n " ,
206
+ " -----END EC PRIVATE KEY-----\n " ,
207
+ client_key_der.data (), len,
208
+ clients_key_pem[internal_sock].data (), 1024 ,
209
+ &olen)) != 0 )
210
+ {
211
+ log_e (" failed\n ! mbedtls_pem_write_buffer returned -0x%04x" , (unsigned int ) -ret);
212
+ clients_cert_pem[internal_sock].clear ();
213
+ return chAT::CommandStatus::ERROR;
214
+ }
205
215
clients_key_pem[internal_sock].resize (olen);
206
216
207
217
#if ECC_DEBUG_ENABLED
0 commit comments