@@ -77,7 +77,7 @@ typedef struct thread_extension_credentials {
77
77
78
78
#ifdef HAVE_THREAD_V2
79
79
80
- /* Hardcoded CSR request/privatekey pairs */
80
+ /* Hardcoded CSR request */
81
81
static const unsigned char csr_request [215 ] = {
82
82
0x30 ,0x81 ,0xd4 ,0x30 ,0x7c ,0x02 ,0x01 ,0x00 ,0x30 ,0x1a ,0x31 ,0x18 ,0x30 ,0x16 ,0x06 ,0x03 ,
83
83
0x55 ,0x04 ,0x03 ,0x0c ,0x0f ,0x54 ,0x68 ,0x72 ,0x65 ,0x61 ,0x64 ,0x44 ,0x65 ,0x76 ,0x69 ,0x63 ,
@@ -95,7 +95,9 @@ static const unsigned char csr_request[215] = {
95
95
0x26 ,0xe3 ,0x5a ,0x74 ,0x62 ,0x0f ,0x70
96
96
};
97
97
98
- /* Private key for certificate m_device_nxp_sn_and_8021ar.cert.pem -> test registrar will return this as default
98
+ /*
99
+ * Private key for certificate m_device_nxp_sn_and_8021ar.cert.pem -> test registrar will return this as default
100
+ */
99
101
static const unsigned char domain_private_key [138 ] = {
100
102
0x30 ,0x81 ,0x87 ,0x02 ,0x01 ,0x00 ,0x30 ,0x13 ,0x06 ,0x07 ,0x2a ,0x86 ,0x48 ,0xce ,0x3d ,0x02 ,
101
103
0x01 ,0x06 ,0x08 ,0x2a ,0x86 ,0x48 ,0xce ,0x3d ,0x03 ,0x01 ,0x07 ,0x04 ,0x6d ,0x30 ,0x6b ,0x02 ,
@@ -107,7 +109,7 @@ static const unsigned char domain_private_key[138] = {
107
109
0xc2 ,0x43 ,0x69 ,0x0a ,0x57 ,0xb5 ,0x54 ,0xeb ,0x9b ,0x06 ,0xad ,0xed ,0x7c ,0x56 ,0x6e ,0x0c ,
108
110
0x23 ,0xcb ,0x1e ,0x51 ,0x78 ,0xe4 ,0xae ,0x41 ,0x58 ,0x15
109
111
};
110
- */
112
+
111
113
const uint8_t meshcop_nmkp_resp_ignore [] = {
112
114
MESHCOP_TLV_COMM_SIGNATURE ,
113
115
MESHCOP_TLV_COMM_TOKEN ,
@@ -196,7 +198,7 @@ static int thread_joiner_application_simple_enroll_response_cb(int8_t service_id
196
198
197
199
protocol_interface_info_entry_t * cur = protocol_stack_interface_info_get_by_id (thread_extension_bootstrap_find_id_by_service (service_id ));
198
200
199
- tr_debug ("Simple enrollment received %s" ,trace_array (response_ptr -> payload_ptr , response_ptr -> payload_len ));
201
+ tr_debug ("Simple enrollment received len:%d - %s" , response_ptr -> payload_len ,trace_array (response_ptr -> payload_ptr , response_ptr -> payload_len ));
200
202
201
203
if (!cur || !cur -> thread_info || !response_ptr ) {
202
204
return -1 ;
@@ -217,11 +219,8 @@ static int thread_joiner_application_simple_enroll_response_cb(int8_t service_id
217
219
flen = 0 ;
218
220
}
219
221
220
- /* Hack: registrar does not reply actual certificates, we need to use something... */
221
222
if ( flen != len ||
222
- 0 > thread_extension_bootstrap_network_certificate_set (cur , thread_info (cur )-> extension_credentials_ptr -> device_certificate_ptr ,
223
- thread_info (cur )-> extension_credentials_ptr -> device_certificate_len )) {
224
- // 0 > thread_extension_bootstrap_network_certificate_set(cur, ptr, len)) {
223
+ 0 > thread_extension_bootstrap_network_certificate_set (cur , ptr , len )) {
225
224
tr_warn ("ae response parse failed, len %d != %d" ,len ,flen );
226
225
}
227
226
@@ -241,8 +240,7 @@ static int thread_joiner_application_csrattrs_response_cb(int8_t service_id, uin
241
240
tr_info ("Receiving csrattrs response sending simpleenroll" );
242
241
243
242
// TODO Create CSR and private key here... Now we use hardcoded stuff.
244
- // HACK: use device certificate/private key untill registrar replys real certificates..
245
- thread_extension_bootstrap_network_private_key_set (cur , thread_info (cur )-> extension_credentials_ptr -> device_pk_ptr , thread_info (cur )-> extension_credentials_ptr -> device_pk_len );
243
+ thread_extension_bootstrap_network_private_key_set (cur , domain_private_key , sizeof (domain_private_key ));
246
244
247
245
coap_service_request_send (service_id , COAP_REQUEST_OPTIONS_SECURE_BYPASS , source_address , source_port ,
248
246
COAP_MSG_TYPE_CONFIRMABLE , COAP_MSG_CODE_REQUEST_POST , THREAD_URI_SIMPLEENROLL , THREAD_CONTENT_FORMAT_PKCS10 ,
@@ -296,18 +294,17 @@ static int thread_joiner_application_rat_response_cb(int8_t service_id, uint8_t
296
294
ca_cert_len = common_read_16_bit ((uint8_t * )ca_cert_ptr ); // read length
297
295
ca_cert_ptr += 2 ;
298
296
tr_debug ("CA cert len %d" , ca_cert_len );
299
- /* Set domain certificate pointer and length */
300
- // HACK: this is not needed, we use device certificate...
301
-
302
- // if (thread_info(cur)->extension_credentials_ptr->domain_ca_certificate_ptr) {
303
- // ns_dyn_mem_free(thread_info(cur)->extension_credentials_ptr->domain_ca_certificate_ptr);
304
- // }
305
- // thread_info(cur)->extension_credentials_ptr->domain_ca_certificate_ptr = ns_dyn_mem_alloc(ca_cert_len);
306
- // if (!thread_info(cur)->extension_credentials_ptr->domain_ca_certificate_ptr) {
307
- // return -1;
308
- // }
309
- // memcpy(thread_info(cur)->extension_credentials_ptr->domain_ca_certificate_ptr, ca_cert_ptr, ca_cert_len);
310
- // thread_info(cur)->extension_credentials_ptr->domain_ca_certificate_len = ca_cert_len;
297
+ /* Set domain CA certificate pointer and length */
298
+
299
+ if (thread_info (cur )-> extension_credentials_ptr -> domain_ca_certificate_ptr ) {
300
+ ns_dyn_mem_free (thread_info (cur )-> extension_credentials_ptr -> domain_ca_certificate_ptr );
301
+ }
302
+ thread_info (cur )-> extension_credentials_ptr -> domain_ca_certificate_ptr = ns_dyn_mem_alloc (ca_cert_len );
303
+ if (!thread_info (cur )-> extension_credentials_ptr -> domain_ca_certificate_ptr ) {
304
+ return -1 ;
305
+ }
306
+ memcpy (thread_info (cur )-> extension_credentials_ptr -> domain_ca_certificate_ptr , ca_cert_ptr , ca_cert_len );
307
+ thread_info (cur )-> extension_credentials_ptr -> domain_ca_certificate_len = ca_cert_len ;
311
308
} else {
312
309
tr_error ("Response parse failed" );
313
310
}
0 commit comments