{"BYPASS_CROSS_ASYNC", bypass_e, 0x00, raw_data_e},
{"BYPASSED_CROSS_ASYNC", bypass_e, 0x01, raw_data_e},
+ /* PRNG service */
+ {"RANDOM_REQ", prng_e, 0x00, prng_param_e},
+ {"RANDOM_RESP", prng_e, 0x01, status_e},
+
/* Control service */
{"STATUS_REQ", control_e, 0x00, nopdu_e},
{"STATUS_RESP", control_e, 0x01, status_e},
VERBOSE (morep, WARNING, PRINTF ("message %s is not allowed for service %s (line '%s')\n", msg->name, serv->name, line));
continue;
}
+ VERBOSE (morep, DEBUG, PRINTF ("work with message %s\n", msg->name));
CHANNEL_t msg_channel = {0};
CLEAR_DATA_t msg_clear_data = {0};
/* check pdu type */
pdu = undef_pdu_e;
+ msg = NULL;
for (int i = 0; ((message_list + i)->service_id) && (pdu == undef_pdu_e); i++) {
message_t *m = message_list + i;
if ((m->service_id == serv->service_id) && (m->msgtype == msgtype)) {
pdu = m->pdu;
+ msg = m;
}
}
/* log message */
if (log) {
- fprintf (log, "%c%s[%s] SEG=%d MSG=%d LEN=%d %s ", mode ? 'T' : 'R', serv->name,
- comm->etype, seqnum, msg->msgtype, len, msg->name);
+ fprintf (log, "%c:%s[%s] [SEG=%d MSG=%d LEN=%d PDU=%d] %s", mode ? 'T' : 'R',
+ serv->name, comm->etype, seqnum, msg->msgtype, len, pdu, msg->name);
char buffer[1496 * 3 + 256] = {0};
switch (pdu) {
case channel_e:
/* test: morep_simulator.exe -l script-provisioning.log -s PROVISIONING -t lo://00:00:00:00:00:00/0808 -r lo://00:00:00:00:00:00/0808 script-provisioning.eth */
/* test: morep_simulator.exe -l script-prng.log -s PRNG -t lo://00:00:00:00:00:00/0808 -r lo://00:00:00:00:00:00/0808 script-prng.eth */
/* test: morep_simulator.exe -l script-bypass.log -s BYPASS -t lo://00:00:00:00:00:00/0808 -r lo://00:00:00:00:00:00/0808 script-bypass.eth */
-/* test: morep_simulator.exe -l script-control.log -s CONTROL -t lo://00:00:00:00:00:00/0808 -r lo://00:00:00:00:00:00/0808 script-control.eth */
+/* test: morep_simulator.exe -l script-control.log -s CONTROL -t lo://00:00:00:00:00:00/0808 -r lo://00:00:00:00:00:00/0808 script-control.eth -v 4 */
/* vim: set ts=4 sw=4 si et: */
@param buf preallocated storage
@param optinal parameter to use defined length
*/
-#define PARSE_ARRAY(name, buf, ...) \
- else if (strcmp (var, name) == 0) { \
- buf##_len = parse_array (val, buf, (1 == __VA_ARGS__ + 0) ? buf##_len : (int)sizeof (buf)); \
+#define PARSE_ARRAY(name, buf, ...) \
+ else if (strcmp (var, name) == 0) { \
+ buf##_len = parse_array (val, buf, (__VA_ARGS__ + 0) ? buf##_len : (int)sizeof (buf)); \
}
/**
uint8_t iv[12]; /**< initial vector */
uint8_t bypass_len; /**< attached bypass message length */
uint8_t bypass[255]; /**< attached bypass message */
- uint8_t data_len; /**< data length (must be aligned to 16 bytes) */
+ uint16_t data_len; /**< data length (must be aligned to 16 bytes) */
uint8_t data[1472]; /**< data message */
} ENCRYPTED_DATA_t;
--- /dev/null
+# Bypass test script
+
+T:BYPASS BYPASS_CROSS_ASYNC DATA=@makefile
+R:BYPASS BYPASS_CROSS_ASYNC
+
+T:BYPASS BYPASSED_CROSS_ASYNC DATA=@makefile
+R:BYPASS BYPASSED_CROSS_ASYNC
--- /dev/null
+# Provisioning test script
+
+T:CONTROL STATUS_REQ
+R:CONTROL STATUS_REQ
+
+T:CONTROL STATUS_RESP STATUS=4
+R:CONTROL STATUS_RESP
+
+T:CONTROL AUTHENTIFICATION_REQ DATA="This is an authentification phrase"
+R:CONTROL AUTHENTIFICATION_REQ
+
+T:CONTROL AUTHENTIFICATION_RESP DATA="Authentification completed"
+R:CONTROL AUTHENTIFICATION_RESP
+
+T:CONTROL REBOOT_REQ
+R:CONTROL REBOOT_REQ
+
+T:CONTROL REBOOT_RESP STATUS=0
+R:CONTROL REBOOT_RESP
+
+T:CONTROL ZEROISE_REQ
+R:CONTROL ZEROISE_REQ
+
+T:CONTROL ZEROISE_RESP STATUS=0xFF
+R:CONTROL ZEROISE_RESP
+
+T:CONTROL LOCK_CRYPTO_REQ
+R:CONTROL LOCK_CRYPTO_REQ
+
+T:CONTROL LOCK_CRYPTO_RESP STATUS=0
+R:CONTROL LOCK_CRYPTO_RESP
R:CROSS_CRYPTO ENCRYPT_CROSS_ASYNC
T:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC CHANNELID=9 BYPASSLEN=1 BYPASS=55 DATA=@script-local_crypto.eth
-RCROSS_CRYPTO ENCRYPTED_CROSS_ASYNC
+R:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC
T:CROSS_CRYPTO DECRYPT_CROSS_ASYNC CHANNELID=5 BYPASSLEN=0 DATA=@script-local_crypto.eth
-RCROSS_CRYPTO DECRYPT_CROSS_ASYNC CHANNELID=5 BYPASSLEN=0 DATA=@script-local_crypto.eth
+R:CROSS_CRYPTO DECRYPT_CROSS_ASYNC
T:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC CHANNELID=0 BYPASSLEN=4 BYPASS=11223344 DATA=@script-cross_crypto.eth
-R:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC CHANNELID=0 BYPASSLEN=4 BYPASS=11223344 DATA=@script-cross_crypto.eth
+R:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC
# Local crypto test script
T:LOCAL_CRYPTO ENCRYPT_LOCAL_ASYNC CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=@script-cross_crypto.eth
-R:LOCAL_CRYPTO ENCRYPT_LOCAL_ASYNC CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=@script-cross_crypto.eth
+R:LOCAL_CRYPTO ENCRYPT_LOCAL_ASYNC
T:LOCAL_CRYPTO ENCRYPTED_LOCAL_ASYNC CHANNELID=9 BYPASSLEN=0 DATA=@script-local_crypto.eth
-R:LOCAL_CRYPTO ENCRYPTED_LOCAL_ASYNC CHANNELID=9 BYPASSLEN=0 DATA=@script-local_crypto.eth
+R:LOCAL_CRYPTO ENCRYPTED_LOCAL_ASYNC
T:LOCAL_CRYPTO DECRYPT_LOCAL_ASYNC CHANNELID=5 BYPASSLEN=0 DATA=@script-local_crypto.eth
-R:LOCAL_CRYPTO DECRYPT_LOCAL_ASYNC CHANNELID=5 BYPASSLEN=0 DATA=@script-local_crypto.eth
+R:LOCAL_CRYPTO DECRYPT_LOCAL_ASYNC
T:LOCAL_CRYPTO DECRYPTED_LOCAL_ASYNC CHANNELID=0 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=@script-cross_crypto.eth
-R:LOCAL_CRYPTO DECRYPTED_LOCAL_ASYNC CHANNELID=0 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=@script-cross_crypto.eth
+R:LOCAL_CRYPTO DECRYPTED_LOCAL_ASYNC
--- /dev/null
+# PRNG test script
+
+T:PRNG RANDOM_REQ PRNGID=0 SEQLEN=64 SEED=0102030405060708090A0B0C0D0E0F10
+R:PRNG RANDOM_REQ
+
+T:PRNG RANDOM_RESP DATA=@makefile
+R:PRNG RANDOM_RESP
--- /dev/null
+# Provisioning test script
+
+T:PROVISIONING LOAD_KEY_REQ KEYID=2 KEY=0102030405060708090A0B0C0D0E0F10
+R:PROVISIONING LOAD_KEY_REQ
+
+T:PROVISIONING LOAD_KEY_RESP STATUS=0
+T:PROVISIONING LOAD_KEY_RESP
+
+T:PROVISIONING UNLOAD_KEY_REQ KEYID=42
+R:PROVISIONING UNLOAD_KEY_REQ
+
+T:PROVISIONING UNLOAD_KEY_RESP STATUS=0xFF
+R:PROVISIONING UNLOAD_KEY_RESP
+
+T:PROVISIONING ERASE_KEY_REQ KEYID=255
+R:PROVISIONING ERASE_KEY_REQ
+
+T:PROVISIONING ERASE_KEY_RESP STATUS=0
+R:PROVISIONING ERASE_KEY_RESP
+
+T:PROVISIONING ASSOCIATE_CHANNEL_REQ CHANNELID=0 KEYID=2
+R:PROVISIONING ASSOCIATE_CHANNEL_REQ
+
+T:PROVISIONING ASSOCIATE_CHANNEL_RESP STATUS=0
+R:PROVISIONING ASSOCIATE_CHANNEL_RESP
+
+T:PROVISIONING DISSOCIATE_CHANNEL_REQ CHANNELID=0 KEYID=255
+R:PROVISIONING DISSOCIATE_CHANNEL_REQ
+
+T:PROVISIONING DISSOCIATE_CHANNEL_RESP STATUS=0
+R:PROVISIONING DISSOCIATE_CHANNEL_RESP