From 5eae41e27c5c210a6a9d3aed3380eae567674edb Mon Sep 17 00:00:00 2001 From: Mazet Laurent Date: Fri, 9 May 2025 22:03:09 +0200 Subject: [PATCH] implement real crypto --- cryptomod.c | 2 +- def.h | 5 ++ function.c | 105 ++++++++++++++++++++-------- morep_valid.c | 2 +- pdu_clear_data.h | 4 +- pdu_encrypted_data.h | 6 +- test/script-cross_crypto_b2r-si.eth | 4 +- test/script-cross_crypto_r2b-si.eth | 2 +- test/script-local_crypto-si.eth | 4 +- 9 files changed, 92 insertions(+), 42 deletions(-) diff --git a/cryptomod.c b/cryptomod.c index e39e365..1a4e8fe 100644 --- a/cryptomod.c +++ b/cryptomod.c @@ -14,7 +14,7 @@ /* depend: simulator.exe */ /* cflags: */ -/* linker: core.o function.o morep.o parse.o pdu_channel.o pdu_encrypted_data.o pdu_prng_param.o pdu_status.o pdu_clear_data.o pdu_key.o pdu_raw_data.o task.o */ +/* linker: core.o function.o morep.o parse.o pdu_channel.o pdu_encrypted_data.o pdu_prng_param.o pdu_status.o pdu_clear_data.o pdu_key.o pdu_raw_data.o task.o -lcrypto */ #include #include diff --git a/def.h b/def.h index 0ee7011..e26ac3a 100644 --- a/def.h +++ b/def.h @@ -24,6 +24,11 @@ #define MOREP_PAYLOAD (1496 * 16 - 1) #endif +#define AAD_LENGTH 4 +#define IV_LENGTH 12 +#define KEY_LENGTH 32 +#define TAG_LENGTH 16 + #endif /* __DEF_H__ */ /* vim: set ts=4 sw=4 si et: */ diff --git a/function.c b/function.c index 5297e96..6af76ec 100644 --- a/function.c +++ b/function.c @@ -12,11 +12,14 @@ - initial version */ +#include #include #include #include #include +#include "def.h" + #include "cryptomod.h" #include "pdu_channel.h" #include "pdu_clear_data.h" @@ -41,6 +44,7 @@ int key_lengths[NB_KEYS] = {0}; uint8_t channels[NB_CHANNELS] = {0}; int encrypt_func (CLEAR_DATA_t *in, ENCRYPTED_DATA_t *out) + { VERBOSE (crypto, TRACE, PRINTF ("encrypt_func\n")); @@ -49,16 +53,6 @@ int encrypt_func (CLEAR_DATA_t *in, ENCRYPTED_DATA_t *out) /* channel id */ out->channel_id = in->channel_id; - /* draw iv */ - int iv_len = sizeof (out->iv); - for (int i = 0, r = 0; i < iv_len; i++) { - if (i % 4) { - r = rand (); - } - out->iv[i] = r & 0xff; - r >>= 8; - } - /* copy bypass */ #ifndef PROTOCOL_EXT if (in->bypass_len) { @@ -70,27 +64,60 @@ int encrypt_func (CLEAR_DATA_t *in, ENCRYPTED_DATA_t *out) out->bypass_len = in->bypass_len; #endif + /* get add */ + int aad_len = sizeof (in->aad); + + /* draw iv */ + int iv_len = sizeof (out->iv); + for (int i = 0, r = 0; i < iv_len; i++) { + if (i % 4) { + r = rand (); + } + out->iv[i] = r & 0xff; + r >>= 8; + } + /* scramble with iv */ for (int i = 0; i < in->data_len; i++) { out->data[i] = (in->data[i] ^ out->iv[i % iv_len]) & 0xff; } out->data_len = in->data_len; - /* encrypt with key */ + /* look for key */ int cid = in->channel_id; int kid = channels[cid] - 1; + uint8_t key[KEY_LENGTH] = {0}; if (kid >= 0) { // FIXIT: not thread safe - uint8_t *key = keys[kid]; int klen = key_lengths[kid]; - for (int i = 0; i < out->data_len; i++) { - out->data[i] = (out->data[i] ^ key[i % klen]) & 0xff; - } + if (klen != KEY_LENGTH) { + VERBOSE (crypto, WARNING, PRINTF ("incorrect key length (%d)\n", klen)); + } + memset (key, 0, (klen > KEY_LENGTH) ? KEY_LENGTH : klen); } else { - VERBOSE (crypto, WARNING, PRINTF ("no key associated to channel %d (%d))\n", cid, kid)); + VERBOSE (crypto, WARNING, PRINTF ("no key associated to channel %d (%d)\n", cid, kid)); } - usleep (200); // simulate cpu time + /* encrypt message */ + EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); + EVP_EncryptInit_ex (ctx, EVP_aes_256_gcm (), NULL, NULL, NULL); + EVP_CIPHER_CTX_ctrl (ctx, EVP_CTRL_GCM_SET_IVLEN, iv_len, NULL); + EVP_EncryptInit_ex (ctx, NULL, NULL, key, out->iv); + int out_len = 0; + if (aad_len) { + EVP_EncryptUpdate (ctx, NULL, &out_len, in->aad, aad_len); + } + EVP_EncryptUpdate (ctx, out->data, &out_len, in->data, in->data_len); + out->data_len = out_len; + if (EVP_EncryptFinal_ex (ctx, out->data + out->data_len, &out_len)) { + out->data_len += out_len; + EVP_CIPHER_CTX_ctrl (ctx, EVP_CTRL_AEAD_GET_TAG, TAG_LENGTH, (void *)(out->data + out->data_len)); + out->data_len += TAG_LENGTH; + } else { + //memset (out->data, 0, out->data_len); + out->data_len = 0; + } + EVP_CIPHER_CTX_free (ctx); state = ready_e; @@ -106,9 +133,6 @@ int decrypt_func (ENCRYPTED_DATA_t *in, CLEAR_DATA_t *out) /* channel id */ out->channel_id = in->channel_id; - /* get iv */ - int iv_len = sizeof (in->iv); - /* copy bypass */ #ifndef PROTOCOL_EXT if (in->bypass_len) { @@ -120,27 +144,48 @@ int decrypt_func (ENCRYPTED_DATA_t *in, CLEAR_DATA_t *out) out->bypass_len = in->bypass_len; #endif - /* scramble with iv */ - for (int i = 0; i < in->data_len; i++) { - out->data[i] = (in->data[i] ^ in->iv[i % iv_len]) & 0xff; - } - out->data_len = in->data_len; + /* get aad */ + int aad_len = sizeof (in->aad); + + /* get iv */ + int iv_len = sizeof (in->iv); - /* decrypt with key */ + /* look for key */ int cid = in->channel_id; int kid = channels[cid] - 1; + uint8_t key[KEY_LENGTH] = {0}; if (kid >= 0) { // FIXIT: not thread safe - uint8_t *key = keys[kid]; int klen = key_lengths[kid]; - for (int i = 0; i < out->data_len; i++) { - out->data[i] = (out->data[i] ^ key[i % klen]) & 0xff; + if (klen != KEY_LENGTH) { + VERBOSE (crypto, WARNING, PRINTF ("incorrect key length (%d)\n", klen)); } + memset (key, 0, (klen > KEY_LENGTH) ? KEY_LENGTH : klen); } else { VERBOSE (crypto, WARNING, PRINTF ("no key associated to channel %d (%d)\n", cid, kid)); } - usleep (200); // simulate cpu time + /* decrypt message */ + EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); + EVP_DecryptInit_ex (ctx, EVP_aes_256_gcm (), NULL, NULL, NULL); + EVP_CIPHER_CTX_ctrl (ctx, EVP_CTRL_GCM_SET_IVLEN, iv_len, NULL); + if (EVP_DecryptInit_ex (ctx, NULL, NULL, key, in->iv)) { + EVP_CIPHER_CTX_ctrl (ctx, EVP_CTRL_AEAD_SET_TAG, TAG_LENGTH, (void *)(in->data + in->data_len - TAG_LENGTH)); + } + int out_len = 0; + if (aad_len) { + EVP_DecryptUpdate (ctx, NULL, &out_len, in->aad, aad_len); + } + if (!EVP_DecryptUpdate (ctx, out->data, &out_len, in->data, in->data_len - TAG_LENGTH)) { + VERBOSE (crypto, DEBUG, PRINTF ("decrypt error\n")); + memset (out->data, 0, out_len); + out->data_len = 0; + } else { + out->data_len = out_len; + EVP_DecryptFinal_ex (ctx, NULL, &out_len); + out->data_len += out_len; + } + EVP_CIPHER_CTX_free (ctx); state = ready_e; diff --git a/morep_valid.c b/morep_valid.c index 87d4f15..a80d815 100644 --- a/morep_valid.c +++ b/morep_valid.c @@ -322,7 +322,7 @@ int main (int argc, char **argv) /* check msg type */ if (rxmsgtype != msgtype) { - VERBOSE (morep, WARNING, PRINTF ("R%sx SEQ=%d MSG=%d: expected msgtype %d\n", comm->etype, seqnum, rxmsgtype, msgtype)); + VERBOSE (morep, WARNING, PRINTF ("R%s SEQ=%d MSG=%d: expected msgtype %d\n", comm->etype, seqnum, rxmsgtype, msgtype)); } /* check payload */ else if ((rxlen != payload.data_len) || diff --git a/pdu_clear_data.h b/pdu_clear_data.h index a2b2ba8..58b7bab 100644 --- a/pdu_clear_data.h +++ b/pdu_clear_data.h @@ -36,9 +36,9 @@ typedef struct { uint8_t channel_id; /**< channel index */ uint8_t bypass_len; /**< attached bypass message length */ uint8_t bypass[255]; /**< attached bypass message */ - uint8_t aad[4]; /**< additional authenticated data */ + uint8_t aad[AAD_LENGTH]; /**< additional authenticated data */ uint16_t data_len; /**< data length (must be aligned to 16 bytes) */ - uint8_t data[16 * ((MOREP_PAYLOAD - 34) / 16)]; /**< data message */ + uint8_t data[16 * ((MOREP_PAYLOAD - 2 - AAD_LENGTH - IV_LENGTH - TAG_LENGTH) / 16)]; /**< data message */ } CLEAR_DATA_t; /** diff --git a/pdu_encrypted_data.h b/pdu_encrypted_data.h index df564fc..5b91538 100644 --- a/pdu_encrypted_data.h +++ b/pdu_encrypted_data.h @@ -36,10 +36,10 @@ typedef struct { uint8_t channel_id; /**< channel index */ uint8_t bypass_len; /**< attached bypass message length */ uint8_t bypass[255]; /**< attached bypass message */ - uint8_t aad[4]; /**< additional authenticated data */ - uint8_t iv[12]; /**< initial vector */ + uint8_t aad[AAD_LENGTH]; /**< additional authenticated data */ + uint8_t iv[IV_LENGTH]; /**< initial vector */ uint16_t data_len; /**< data length (must be aligned to 16 bytes) */ - uint8_t data[16 * ((MOREP_PAYLOAD - 34 + 16) / 16)]; /**< data message + tag */ + uint8_t data[16 * ((MOREP_PAYLOAD - 2 - AAD_LENGTH - IV_LENGTH) / 16)]; /**< data message + tag */ } ENCRYPTED_DATA_t; /** diff --git a/test/script-cross_crypto_b2r-si.eth b/test/script-cross_crypto_b2r-si.eth index 82ad0da..6ef1c0f 100644 --- a/test/script-cross_crypto_b2r-si.eth +++ b/test/script-cross_crypto_b2r-si.eth @@ -2,7 +2,7 @@ SLEEP 500 -T:CROSS_CRYPTO DECRYPT_CROSS_ASYNC CHANNELID=1 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=4c:08:b4:0c:f5:53:38:8f:2f:3f:81:09:64:08:aa:06:ea:53:22:96:28:6a:8d:44:65:13:ea:49:fb:1c:3f:8c:39:29:98:4c:74:12:b4:49:f9:17:38:8f:35:39:8f:40:6e:00:e6:0c:f4:1a:25:d1:7c:1a:89:45:6c:02:a8:1d:fd:00:20:8a:39:6a:81:48:78:0e:ab:1c:eb:53:34:8a:35:39:81:46:64:47:a5:06:f6:17:38:92:39:24:98:5c:6d:49:e6:2d:ed:1a:22:df:28:2f:81:59:75:14:e6:0c:f4:1a:25:df:2f:23:98:09:61:0a:a3:1d:b8:19:24:8c:28:25:cc:44:6f:0b:a3:1a:ec:1a:34:df:2f:25:88:48:6c:02:b5:47:b8:22:24:96:2f:3b:99:4c:20:0a:a7:05:fd:00:24:9e:38:2b:cc:5a:6f:03:a7:05:fd:00:71:8b:33:38:98:46:72:49:e6:27:ed:1d:32:df:3d:6a:83:5b:6e:06:b4:0c:b8:19:24:8c:28:25:c2:09:56:02:b5:1d:f1:11:24:93:29:27:cc:4c:75:47:a4:00:fa:16:3f:9b:29:27:cc:4c:72:06:b2:45:b8:12:25:df:2e:3f:98:5b:75:0a:e6:03:ed:00:25:90:72:6a:bd:5c:69:14:b7:1c:fd:53:21:8d:39:3e:85:5c:6d:47:aa:1c:fb:07:24:8c:7c:3a:89:45:6c:02:a8:1d:fd:00:20:8a:39:64:cc:64:61:02:a5:0c:f6:12:22:df:30:2f:8f:5d:75:14:e6:07:f1:11:39:d3:7c:2e:85:4e:6e:0e:b5:1a:f1:1e:71:8c:35:3e:cc:48:6d:02:b2:49:f2:06:22:8b:33:6a:82:46:6e:4b:e6:1a:f9:14:38:8b:28:23:9f:09:61:12:a5:1d:f7:01:71:90:2e:29:85:07:0a:6d:8f:07:ec:16:36:9a:2e:6a:8a:5b:69:09:a1:00:f4:1f:30:df:35:3a:9f:5c:6d:47:af:07:b8:00:3e:9b:3d:26:89:5a:20:06:b3:0a:ec:1c:23:d1:7c:1a:84:48:73:02:aa:05:ed:00:71:92:3d:2d:82:48:20:16:b3:08:f5:5f:71:9e:30:23:9d:5c:65:13:e6:1f:f1:07:30:9a:7c:24:85:5a:6c:47:b5:00:ec:53:30:92:39:3e:c0:09:67:15:a7:1f:f1:17:30:df:2a:2f:82:4c:6e:06:b2:00:eb:53:35:96:3d:27:c2:09:51:12:af:1a:e9:06:34:df:3d:3e:cc:44:65:13:b3:1a:b8:1c:23:91:3d:38:89:05:20:04:a9:07:eb:16:32:8b:39:3e:99:5b:20:02:a8:00:f5:53:38:91:70:6a:80:5c:63:13:b3:1a:b8:1d:34:8e:29:2f:c2:09:51:12:af:1a:e9:06:34:df:38:23:8b:47:69:14:b5:00:f5:53:35:96:3d:27:cc:5a:69:13:e6:08:f5:16:25:df:31:2b:9f:5a:61:47:a3:05:fd:1a:37:9a:32:2e:cc:4c:75:0e:b5:04:f7:17:7f:df:0c:22:8d:5a:65:0b:aa:1c:eb:53:3f:8a:30:26:8d:09:73:02:ab:45:b8:15:34:8a:3b:23:8d:5d:20:12:b2:49:fa:1a:33:9a:32:2e:99:44:20:09:a3:0a:b4:53:33:96:3e:2f:82:4d:75:0a:e6:07:f7:1d:71:90:38:23:83:07:20:2e:a8:49:e8:1b:30:8d:39:3e:9e:48:2c:47:a8:00:fa:1b:71:89:35:3e:8d:4c:20:17:a9:1b:ec:12:71:8f:34:2b:9e:4c:74:15:a7:45:b8:17:3e:93:33:38:cc:47:75:09:a5:49:fe:16:23:92:39:24:98:5c:6d:47:a8:0c:e9:06:34:d3:7c:2f:98:09:6c:06:a5:00:f6:1a:30:df:28:2f:80:45:75:14:e6:04:fd:07:24:8c:7c:2b:cc:45:69:00:b3:05:f9:5d:71:ae:29:23:9f:58:75:02:e6:08:f4:1a:20:8a:39:3e:cc:48:63:47:aa:0c:f7:53:30:df:3a:38:85:47:67:0e:aa:05:f9:5d:71:b1:29:24:8f:09:70:08:b4:1d:ec:1a:25:90:2e:6a:9a:4c:68:0e:a5:1c:f4:12:71:8a:30:26:8d:44:63:08:b4:19:fd:01:7f:df:09:3e:cc:5f:65:0f:af:0a:ed:1f:30:df:30:2f:8f:5d:75:14:e6:0a:f7:1d:27:9e:30:26:85:5a:20:09:a3:18:ed:16:71:92:33:26:80:40:73:4b:e6:0c:ec:53:3c:9e:30:2f:9f:5c:61:03:a7:49:f4:1a:33:9a:2e:25:cc:59:6f:15:b2:08:b6:79 +T:CROSS_CRYPTO DECRYPT_CROSS_ASYNC CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 AAD=00:00:00:00 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 DATA=92:3c:7a:08:cc:0a:87:da:c2:07:df:70:97:cb:d9:d2:31:76:76:88:89:e4:59:b0:c5:85:d3:32:4b:2a:de:62:ab:d8:e5:8a:99:6d:26:71:1b:91:9b:f0:b2:96:7a:f0:3d:35:8a:eb:95:a3:dd:8c:f6:3b:50:a7:7a:76:17:4b:85:7f:05:7b:e1:42:f8:d7:1b:44:f6:ec:ba:d2:4c:15:ad:9a:bf:9c:db:2b:e8:50:1f:d9:6c:e6:72:95:14:ac:8b:e4:51:54:1d:a8:d8:cb:c3:3a:0b:7d:4e:92:e9:04:a3:b9:68:10:cc:fb:5a:c4:71:e9:e8:c8:c9:73:ac:01:fb:1b:8b:72:04:fa:dd:e0:66:9d:c9:18:f2:4e:8e:75:42:8c:67:91:c4:7b:f6:b3:ad:db:04:37:27:52:5a:dc:f7:78:6c:88:10:87:ff:d2:d8:bf:ae:06:9d:68:aa:e0:5a:82:72:8f:7b:93:45:33:84:30:b2:d1:48:23:04:cf:7a:48:e3:0f:4f:d6:56:79:36:6a:82:44:0a:ac:24:d6:93:6b:28:f7:9b:38:8a:48:1d:f0:c3:65:7c:c0:c1:14:6a:b0:72:7d:be:ac:46:91:2e:15:8d:64:77:53:9c:48:a9:81:f8:c0:8e:ec:e5:8d:5e:dc:e6:bb:5c:58:a6:13:0b:b3:3d:ca:d6:92:a6:a6:43:00:3f:a8:60:5e:14:9c:56:cc:8f:da:61:69:df:53:28:92:cc:5c:23:89:cd:22:70:30:c3:12:40:ca:67:df:b4:ae:1b:44:d6:e3:85:70:c4:3f:cd:60:90:56:63:16:cd:88:0c:12:ae:4a:b0:d8:80:2c:82:ae:d4:fb:f6:cd:56:7b:8b:48:f3:68:6c:8c:58:43:0d:75:0f:33:24:b4:01:b9:ae:66:7a:29:da:ed:8f:33:dd:c5:23:98:94:27:c1:c6:77:11:01:9f:86:d0:a5:a7:3c:54:e5:0f:eb:b0:6a:b5:fa:b1:6a:6e:3d:e2:5d:80:1f:3d:e3:57:64:03:47:32:54:51:3c:44:13:90:cc:20:a9:b8:c9:51:c4:73:0e:67:31:38:b2:c7:57:3a:e8:e8:2d:6b:f4:55:7f:09:c9:e0:a7:bf:42:82:7b:81:f7:02:c0:29:82:f9:96:73:0f:0d:79:ac:fb:64:68:81:31:bd:c1:59:5e:e2:60:ad:2b:bd:34:df:73:24:55:37:56:a0:6d:17:40:b6:54:5d:af:56:24:e0:bb:58:e6:26:46:df:ab:be:1c:14:40:85:6d:4c:93:d0:88:39:37:89:7f:1e:9f:52:21:c5:35:a9:7f:39:b9:5c:3e:88:6f:93:4b:ca:cc:c1:67:b2:3e:c9:73:5d:10:26:ea:25:1b:46:ed:e8:12:cb:f5:eb:18:f4:45:fc:ab:db:80:8c:f9:58:77:e0:7a:57:5d:0b:10:f5:87:d2:a0:45:0c:06:50:81:28:81:52:4d:5e:2c:45:be:bc:14:54:a5:66:5e:4a:fc:6c:86:35:c1:56:2f:56:16:0f:78:5e:1c:2b:bc:65:51:4e:a5:39:5c:86:ad:c2:aa:7a:7f:fe:65:ae:15:b8:04:03:5e:51:46:1c:db:93:4a:44:c5:4d:78:d8:cc:e9:24:b1:b2:5d:d9:58:ae:2c:f8:5c:f5:d2:64:6c:4c:e5:26:f9:5d:2f:70:09:39:57:5a:51:8c:99:c7:2f:1c:ba:ec:44:c9:57:8a:1e:76:6e:28:9c:15:d9:39:cc:38:88:f9:b5:c4:df:ae:15:36:d0:93:56:a0:77:72:b2:ff:59:8e:21:32:b3:e8:c5:1c:8a:7f:a9:ba:7e:09:c5:a3:f8:e9:3d:5a:05:3a:83:1a:34:e7:d4:8e:21:9e:eb:9e:62:3e:21:31:6a:f2:ea:ea:5b:98:84:bd:d0:31:c2:86:f2:6d:5b:f0:a3:48:d4:dc:d7:05:d1:26:fe:a7:65:a4:b4:f6:2d:cb:30:8d:4e:32:ec:50:de:06:68:c7:8e:a0:02:78:08:8d:8d:1e:d5:1b:77:ae:43:06:92:3f:3c:56:45:37:39:ca:08:3a:08:b1:11:16:b3:51:82:79:98:1d:2d:57:45:d8:76:40:62:ff:8e:8b:0b:89:dd:89:9e:c5:d8:22:5f:ac:42:83:84:8f:f9:8e:f5:95:a8:bd:af:d7:fa:e6:18:58:ce:95:2d:9b:a0:05:1f:e7:7b:27:23:71:4b:6c:d8:a1:53:6d:32:2a:44:1f:6b:45:73:d6:b2:01:66:1c:d3:3a:82:41:bd:8c:30:ba:c8:1d:a3:45:33:d1:bb:30:d2:80:d9:e5:15:15:d3:4c:ce:b4:81:23:1b:e7:42:4a:86:0d:32:bc:f9:5c:30:98:1a:f1:62:be:2f:c9:5e:ae:e6:fb:0e:68:95:3c:d3:1d:11:81 -R:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC CHANNELID=1 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=@simulator/plaintext.txt +R:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 AAD=00:00:00:00 DATA=@simulator/plaintext.txt diff --git a/test/script-cross_crypto_r2b-si.eth b/test/script-cross_crypto_r2b-si.eth index ab22531..e1df633 100644 --- a/test/script-cross_crypto_r2b-si.eth +++ b/test/script-cross_crypto_r2b-si.eth @@ -4,4 +4,4 @@ SLEEP 500 T:CROSS_CRYPTO ENCRYPT_CROSS_ASYNC CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=@simulator/plaintext.txt -R:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC CHANNELID=2 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=4c:08:b4:0c:f5:53:38:8f:2f:3f:81:09:64:08:aa:06:ea:53:22:96:28:6a:8d:44:65:13:ea:49:fb:1c:3f:8c:39:29:98:4c:74:12:b4:49:f9:17:38:8f:35:39:8f:40:6e:00:e6:0c:f4:1a:25:d1:7c:1a:89:45:6c:02:a8:1d:fd:00:20:8a:39:6a:81:48:78:0e:ab:1c:eb:53:34:8a:35:39:81:46:64:47:a5:06:f6:17:38:92:39:24:98:5c:6d:49:e6:2d:ed:1a:22:df:28:2f:81:59:75:14:e6:0c:f4:1a:25:df:2f:23:98:09:61:0a:a3:1d:b8:19:24:8c:28:25:cc:44:6f:0b:a3:1a:ec:1a:34:df:2f:25:88:48:6c:02:b5:47:b8:22:24:96:2f:3b:99:4c:20:0a:a7:05:fd:00:24:9e:38:2b:cc:5a:6f:03:a7:05:fd:00:71:8b:33:38:98:46:72:49:e6:27:ed:1d:32:df:3d:6a:83:5b:6e:06:b4:0c:b8:19:24:8c:28:25:c2:09:56:02:b5:1d:f1:11:24:93:29:27:cc:4c:75:47:a4:00:fa:16:3f:9b:29:27:cc:4c:72:06:b2:45:b8:12:25:df:2e:3f:98:5b:75:0a:e6:03:ed:00:25:90:72:6a:bd:5c:69:14:b7:1c:fd:53:21:8d:39:3e:85:5c:6d:47:aa:1c:fb:07:24:8c:7c:3a:89:45:6c:02:a8:1d:fd:00:20:8a:39:64:cc:64:61:02:a5:0c:f6:12:22:df:30:2f:8f:5d:75:14:e6:07:f1:11:39:d3:7c:2e:85:4e:6e:0e:b5:1a:f1:1e:71:8c:35:3e:cc:48:6d:02:b2:49:f2:06:22:8b:33:6a:82:46:6e:4b:e6:1a:f9:14:38:8b:28:23:9f:09:61:12:a5:1d:f7:01:71:90:2e:29:85:07:0a:6d:8f:07:ec:16:36:9a:2e:6a:8a:5b:69:09:a1:00:f4:1f:30:df:35:3a:9f:5c:6d:47:af:07:b8:00:3e:9b:3d:26:89:5a:20:06:b3:0a:ec:1c:23:d1:7c:1a:84:48:73:02:aa:05:ed:00:71:92:3d:2d:82:48:20:16:b3:08:f5:5f:71:9e:30:23:9d:5c:65:13:e6:1f:f1:07:30:9a:7c:24:85:5a:6c:47:b5:00:ec:53:30:92:39:3e:c0:09:67:15:a7:1f:f1:17:30:df:2a:2f:82:4c:6e:06:b2:00:eb:53:35:96:3d:27:c2:09:51:12:af:1a:e9:06:34:df:3d:3e:cc:44:65:13:b3:1a:b8:1c:23:91:3d:38:89:05:20:04:a9:07:eb:16:32:8b:39:3e:99:5b:20:02:a8:00:f5:53:38:91:70:6a:80:5c:63:13:b3:1a:b8:1d:34:8e:29:2f:c2:09:51:12:af:1a:e9:06:34:df:38:23:8b:47:69:14:b5:00:f5:53:35:96:3d:27:cc:5a:69:13:e6:08:f5:16:25:df:31:2b:9f:5a:61:47:a3:05:fd:1a:37:9a:32:2e:cc:4c:75:0e:b5:04:f7:17:7f:df:0c:22:8d:5a:65:0b:aa:1c:eb:53:3f:8a:30:26:8d:09:73:02:ab:45:b8:15:34:8a:3b:23:8d:5d:20:12:b2:49:fa:1a:33:9a:32:2e:99:44:20:09:a3:0a:b4:53:33:96:3e:2f:82:4d:75:0a:e6:07:f7:1d:71:90:38:23:83:07:20:2e:a8:49:e8:1b:30:8d:39:3e:9e:48:2c:47:a8:00:fa:1b:71:89:35:3e:8d:4c:20:17:a9:1b:ec:12:71:8f:34:2b:9e:4c:74:15:a7:45:b8:17:3e:93:33:38:cc:47:75:09:a5:49:fe:16:23:92:39:24:98:5c:6d:47:a8:0c:e9:06:34:d3:7c:2f:98:09:6c:06:a5:00:f6:1a:30:df:28:2f:80:45:75:14:e6:04:fd:07:24:8c:7c:2b:cc:45:69:00:b3:05:f9:5d:71:ae:29:23:9f:58:75:02:e6:08:f4:1a:20:8a:39:3e:cc:48:63:47:aa:0c:f7:53:30:df:3a:38:85:47:67:0e:aa:05:f9:5d:71:b1:29:24:8f:09:70:08:b4:1d:ec:1a:25:90:2e:6a:9a:4c:68:0e:a5:1c:f4:12:71:8a:30:26:8d:44:63:08:b4:19:fd:01:7f:df:09:3e:cc:5f:65:0f:af:0a:ed:1f:30:df:30:2f:8f:5d:75:14:e6:0a:f7:1d:27:9e:30:26:85:5a:20:09:a3:18:ed:16:71:92:33:26:80:40:73:4b:e6:0c:ec:53:3c:9e:30:2f:9f:5c:61:03:a7:49:f4:1a:33:9a:2e:25:cc:59:6f:15:b2:08:b6:79 +R:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 AAD=00:00:00:00 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 DATA=92:3c:7a:08:cc:0a:87:da:c2:07:df:70:97:cb:d9:d2:31:76:76:88:89:e4:59:b0:c5:85:d3:32:4b:2a:de:62:ab:d8:e5:8a:99:6d:26:71:1b:91:9b:f0:b2:96:7a:f0:3d:35:8a:eb:95:a3:dd:8c:f6:3b:50:a7:7a:76:17:4b:85:7f:05:7b:e1:42:f8:d7:1b:44:f6:ec:ba:d2:4c:15:ad:9a:bf:9c:db:2b:e8:50:1f:d9:6c:e6:72:95:14:ac:8b:e4:51:54:1d:a8:d8:cb:c3:3a:0b:7d:4e:92:e9:04:a3:b9:68:10:cc:fb:5a:c4:71:e9:e8:c8:c9:73:ac:01:fb:1b:8b:72:04:fa:dd:e0:66:9d:c9:18:f2:4e:8e:75:42:8c:67:91:c4:7b:f6:b3:ad:db:04:37:27:52:5a:dc:f7:78:6c:88:10:87:ff:d2:d8:bf:ae:06:9d:68:aa:e0:5a:82:72:8f:7b:93:45:33:84:30:b2:d1:48:23:04:cf:7a:48:e3:0f:4f:d6:56:79:36:6a:82:44:0a:ac:24:d6:93:6b:28:f7:9b:38:8a:48:1d:f0:c3:65:7c:c0:c1:14:6a:b0:72:7d:be:ac:46:91:2e:15:8d:64:77:53:9c:48:a9:81:f8:c0:8e:ec:e5:8d:5e:dc:e6:bb:5c:58:a6:13:0b:b3:3d:ca:d6:92:a6:a6:43:00:3f:a8:60:5e:14:9c:56:cc:8f:da:61:69:df:53:28:92:cc:5c:23:89:cd:22:70:30:c3:12:40:ca:67:df:b4:ae:1b:44:d6:e3:85:70:c4:3f:cd:60:90:56:63:16:cd:88:0c:12:ae:4a:b0:d8:80:2c:82:ae:d4:fb:f6:cd:56:7b:8b:48:f3:68:6c:8c:58:43:0d:75:0f:33:24:b4:01:b9:ae:66:7a:29:da:ed:8f:33:dd:c5:23:98:94:27:c1:c6:77:11:01:9f:86:d0:a5:a7:3c:54:e5:0f:eb:b0:6a:b5:fa:b1:6a:6e:3d:e2:5d:80:1f:3d:e3:57:64:03:47:32:54:51:3c:44:13:90:cc:20:a9:b8:c9:51:c4:73:0e:67:31:38:b2:c7:57:3a:e8:e8:2d:6b:f4:55:7f:09:c9:e0:a7:bf:42:82:7b:81:f7:02:c0:29:82:f9:96:73:0f:0d:79:ac:fb:64:68:81:31:bd:c1:59:5e:e2:60:ad:2b:bd:34:df:73:24:55:37:56:a0:6d:17:40:b6:54:5d:af:56:24:e0:bb:58:e6:26:46:df:ab:be:1c:14:40:85:6d:4c:93:d0:88:39:37:89:7f:1e:9f:52:21:c5:35:a9:7f:39:b9:5c:3e:88:6f:93:4b:ca:cc:c1:67:b2:3e:c9:73:5d:10:26:ea:25:1b:46:ed:e8:12:cb:f5:eb:18:f4:45:fc:ab:db:80:8c:f9:58:77:e0:7a:57:5d:0b:10:f5:87:d2:a0:45:0c:06:50:81:28:81:52:4d:5e:2c:45:be:bc:14:54:a5:66:5e:4a:fc:6c:86:35:c1:56:2f:56:16:0f:78:5e:1c:2b:bc:65:51:4e:a5:39:5c:86:ad:c2:aa:7a:7f:fe:65:ae:15:b8:04:03:5e:51:46:1c:db:93:4a:44:c5:4d:78:d8:cc:e9:24:b1:b2:5d:d9:58:ae:2c:f8:5c:f5:d2:64:6c:4c:e5:26:f9:5d:2f:70:09:39:57:5a:51:8c:99:c7:2f:1c:ba:ec:44:c9:57:8a:1e:76:6e:28:9c:15:d9:39:cc:38:88:f9:b5:c4:df:ae:15:36:d0:93:56:a0:77:72:b2:ff:59:8e:21:32:b3:e8:c5:1c:8a:7f:a9:ba:7e:09:c5:a3:f8:e9:3d:5a:05:3a:83:1a:34:e7:d4:8e:21:9e:eb:9e:62:3e:21:31:6a:f2:ea:ea:5b:98:84:bd:d0:31:c2:86:f2:6d:5b:f0:a3:48:d4:dc:d7:05:d1:26:fe:a7:65:a4:b4:f6:2d:cb:30:8d:4e:32:ec:50:de:06:68:c7:8e:a0:02:78:08:8d:8d:1e:d5:1b:77:ae:43:06:92:3f:3c:56:45:37:39:ca:08:3a:08:b1:11:16:b3:51:82:79:98:1d:2d:57:45:d8:76:40:62:ff:8e:8b:0b:89:dd:89:9e:c5:d8:22:5f:ac:42:83:84:8f:f9:8e:f5:95:a8:bd:af:d7:fa:e6:18:58:ce:95:2d:9b:a0:05:1f:e7:7b:27:23:71:4b:6c:d8:a1:53:6d:32:2a:44:1f:6b:45:73:d6:b2:01:66:1c:d3:3a:82:41:bd:8c:30:ba:c8:1d:a3:45:33:d1:bb:30:d2:80:d9:e5:15:15:d3:4c:ce:b4:81:23:1b:e7:42:4a:86:0d:32:bc:f9:5c:30:98:1a:f1:62:be:2f:c9:5e:ae:e6:fb:0e:68:95:3c:d3:1d:11:81 diff --git a/test/script-local_crypto-si.eth b/test/script-local_crypto-si.eth index 47270c7..1fee90b 100644 --- a/test/script-local_crypto-si.eth +++ b/test/script-local_crypto-si.eth @@ -4,8 +4,8 @@ SLEEP 500 T:LOCAL_CRYPTO ENCRYPT_LOCAL_REQ CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=@simulator/plaintext.txt -R:LOCAL_CRYPTO ENCRYPTED_LOCAL_RESP CHANNELID=2 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=4c:08:b4:0c:f5:53:38:8f:2f:3f:81:09:64:08:aa:06:ea:53:22:96:28:6a:8d:44:65:13:ea:49:fb:1c:3f:8c:39:29:98:4c:74:12:b4:49:f9:17:38:8f:35:39:8f:40:6e:00:e6:0c:f4:1a:25:d1:7c:1a:89:45:6c:02:a8:1d:fd:00:20:8a:39:6a:81:48:78:0e:ab:1c:eb:53:34:8a:35:39:81:46:64:47:a5:06:f6:17:38:92:39:24:98:5c:6d:49:e6:2d:ed:1a:22:df:28:2f:81:59:75:14:e6:0c:f4:1a:25:df:2f:23:98:09:61:0a:a3:1d:b8:19:24:8c:28:25:cc:44:6f:0b:a3:1a:ec:1a:34:df:2f:25:88:48:6c:02:b5:47:b8:22:24:96:2f:3b:99:4c:20:0a:a7:05:fd:00:24:9e:38:2b:cc:5a:6f:03:a7:05:fd:00:71:8b:33:38:98:46:72:49:e6:27:ed:1d:32:df:3d:6a:83:5b:6e:06:b4:0c:b8:19:24:8c:28:25:c2:09:56:02:b5:1d:f1:11:24:93:29:27:cc:4c:75:47:a4:00:fa:16:3f:9b:29:27:cc:4c:72:06:b2:45:b8:12:25:df:2e:3f:98:5b:75:0a:e6:03:ed:00:25:90:72:6a:bd:5c:69:14:b7:1c:fd:53:21:8d:39:3e:85:5c:6d:47:aa:1c:fb:07:24:8c:7c:3a:89:45:6c:02:a8:1d:fd:00:20:8a:39:64:cc:64:61:02:a5:0c:f6:12:22:df:30:2f:8f:5d:75:14:e6:07:f1:11:39:d3:7c:2e:85:4e:6e:0e:b5:1a:f1:1e:71:8c:35:3e:cc:48:6d:02:b2:49:f2:06:22:8b:33:6a:82:46:6e:4b:e6:1a:f9:14:38:8b:28:23:9f:09:61:12:a5:1d:f7:01:71:90:2e:29:85:07:0a:6d:8f:07:ec:16:36:9a:2e:6a:8a:5b:69:09:a1:00:f4:1f:30:df:35:3a:9f:5c:6d:47:af:07:b8:00:3e:9b:3d:26:89:5a:20:06:b3:0a:ec:1c:23:d1:7c:1a:84:48:73:02:aa:05:ed:00:71:92:3d:2d:82:48:20:16:b3:08:f5:5f:71:9e:30:23:9d:5c:65:13:e6:1f:f1:07:30:9a:7c:24:85:5a:6c:47:b5:00:ec:53:30:92:39:3e:c0:09:67:15:a7:1f:f1:17:30:df:2a:2f:82:4c:6e:06:b2:00:eb:53:35:96:3d:27:c2:09:51:12:af:1a:e9:06:34:df:3d:3e:cc:44:65:13:b3:1a:b8:1c:23:91:3d:38:89:05:20:04:a9:07:eb:16:32:8b:39:3e:99:5b:20:02:a8:00:f5:53:38:91:70:6a:80:5c:63:13:b3:1a:b8:1d:34:8e:29:2f:c2:09:51:12:af:1a:e9:06:34:df:38:23:8b:47:69:14:b5:00:f5:53:35:96:3d:27:cc:5a:69:13:e6:08:f5:16:25:df:31:2b:9f:5a:61:47:a3:05:fd:1a:37:9a:32:2e:cc:4c:75:0e:b5:04:f7:17:7f:df:0c:22:8d:5a:65:0b:aa:1c:eb:53:3f:8a:30:26:8d:09:73:02:ab:45:b8:15:34:8a:3b:23:8d:5d:20:12:b2:49:fa:1a:33:9a:32:2e:99:44:20:09:a3:0a:b4:53:33:96:3e:2f:82:4d:75:0a:e6:07:f7:1d:71:90:38:23:83:07:20:2e:a8:49:e8:1b:30:8d:39:3e:9e:48:2c:47:a8:00:fa:1b:71:89:35:3e:8d:4c:20:17:a9:1b:ec:12:71:8f:34:2b:9e:4c:74:15:a7:45:b8:17:3e:93:33:38:cc:47:75:09:a5:49:fe:16:23:92:39:24:98:5c:6d:47:a8:0c:e9:06:34:d3:7c:2f:98:09:6c:06:a5:00:f6:1a:30:df:28:2f:80:45:75:14:e6:04:fd:07:24:8c:7c:2b:cc:45:69:00:b3:05:f9:5d:71:ae:29:23:9f:58:75:02:e6:08:f4:1a:20:8a:39:3e:cc:48:63:47:aa:0c:f7:53:30:df:3a:38:85:47:67:0e:aa:05:f9:5d:71:b1:29:24:8f:09:70:08:b4:1d:ec:1a:25:90:2e:6a:9a:4c:68:0e:a5:1c:f4:12:71:8a:30:26:8d:44:63:08:b4:19:fd:01:7f:df:09:3e:cc:5f:65:0f:af:0a:ed:1f:30:df:30:2f:8f:5d:75:14:e6:0a:f7:1d:27:9e:30:26:85:5a:20:09:a3:18:ed:16:71:92:33:26:80:40:73:4b:e6:0c:ec:53:3c:9e:30:2f:9f:5c:61:03:a7:49:f4:1a:33:9a:2e:25:cc:59:6f:15:b2:08:b6:79 +R:LOCAL_CRYPTO ENCRYPTED_LOCAL_RESP CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 AAD=00:00:00:00 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 DATA=92:3c:7a:08:cc:0a:87:da:c2:07:df:70:97:cb:d9:d2:31:76:76:88:89:e4:59:b0:c5:85:d3:32:4b:2a:de:62:ab:d8:e5:8a:99:6d:26:71:1b:91:9b:f0:b2:96:7a:f0:3d:35:8a:eb:95:a3:dd:8c:f6:3b:50:a7:7a:76:17:4b:85:7f:05:7b:e1:42:f8:d7:1b:44:f6:ec:ba:d2:4c:15:ad:9a:bf:9c:db:2b:e8:50:1f:d9:6c:e6:72:95:14:ac:8b:e4:51:54:1d:a8:d8:cb:c3:3a:0b:7d:4e:92:e9:04:a3:b9:68:10:cc:fb:5a:c4:71:e9:e8:c8:c9:73:ac:01:fb:1b:8b:72:04:fa:dd:e0:66:9d:c9:18:f2:4e:8e:75:42:8c:67:91:c4:7b:f6:b3:ad:db:04:37:27:52:5a:dc:f7:78:6c:88:10:87:ff:d2:d8:bf:ae:06:9d:68:aa:e0:5a:82:72:8f:7b:93:45:33:84:30:b2:d1:48:23:04:cf:7a:48:e3:0f:4f:d6:56:79:36:6a:82:44:0a:ac:24:d6:93:6b:28:f7:9b:38:8a:48:1d:f0:c3:65:7c:c0:c1:14:6a:b0:72:7d:be:ac:46:91:2e:15:8d:64:77:53:9c:48:a9:81:f8:c0:8e:ec:e5:8d:5e:dc:e6:bb:5c:58:a6:13:0b:b3:3d:ca:d6:92:a6:a6:43:00:3f:a8:60:5e:14:9c:56:cc:8f:da:61:69:df:53:28:92:cc:5c:23:89:cd:22:70:30:c3:12:40:ca:67:df:b4:ae:1b:44:d6:e3:85:70:c4:3f:cd:60:90:56:63:16:cd:88:0c:12:ae:4a:b0:d8:80:2c:82:ae:d4:fb:f6:cd:56:7b:8b:48:f3:68:6c:8c:58:43:0d:75:0f:33:24:b4:01:b9:ae:66:7a:29:da:ed:8f:33:dd:c5:23:98:94:27:c1:c6:77:11:01:9f:86:d0:a5:a7:3c:54:e5:0f:eb:b0:6a:b5:fa:b1:6a:6e:3d:e2:5d:80:1f:3d:e3:57:64:03:47:32:54:51:3c:44:13:90:cc:20:a9:b8:c9:51:c4:73:0e:67:31:38:b2:c7:57:3a:e8:e8:2d:6b:f4:55:7f:09:c9:e0:a7:bf:42:82:7b:81:f7:02:c0:29:82:f9:96:73:0f:0d:79:ac:fb:64:68:81:31:bd:c1:59:5e:e2:60:ad:2b:bd:34:df:73:24:55:37:56:a0:6d:17:40:b6:54:5d:af:56:24:e0:bb:58:e6:26:46:df:ab:be:1c:14:40:85:6d:4c:93:d0:88:39:37:89:7f:1e:9f:52:21:c5:35:a9:7f:39:b9:5c:3e:88:6f:93:4b:ca:cc:c1:67:b2:3e:c9:73:5d:10:26:ea:25:1b:46:ed:e8:12:cb:f5:eb:18:f4:45:fc:ab:db:80:8c:f9:58:77:e0:7a:57:5d:0b:10:f5:87:d2:a0:45:0c:06:50:81:28:81:52:4d:5e:2c:45:be:bc:14:54:a5:66:5e:4a:fc:6c:86:35:c1:56:2f:56:16:0f:78:5e:1c:2b:bc:65:51:4e:a5:39:5c:86:ad:c2:aa:7a:7f:fe:65:ae:15:b8:04:03:5e:51:46:1c:db:93:4a:44:c5:4d:78:d8:cc:e9:24:b1:b2:5d:d9:58:ae:2c:f8:5c:f5:d2:64:6c:4c:e5:26:f9:5d:2f:70:09:39:57:5a:51:8c:99:c7:2f:1c:ba:ec:44:c9:57:8a:1e:76:6e:28:9c:15:d9:39:cc:38:88:f9:b5:c4:df:ae:15:36:d0:93:56:a0:77:72:b2:ff:59:8e:21:32:b3:e8:c5:1c:8a:7f:a9:ba:7e:09:c5:a3:f8:e9:3d:5a:05:3a:83:1a:34:e7:d4:8e:21:9e:eb:9e:62:3e:21:31:6a:f2:ea:ea:5b:98:84:bd:d0:31:c2:86:f2:6d:5b:f0:a3:48:d4:dc:d7:05:d1:26:fe:a7:65:a4:b4:f6:2d:cb:30:8d:4e:32:ec:50:de:06:68:c7:8e:a0:02:78:08:8d:8d:1e:d5:1b:77:ae:43:06:92:3f:3c:56:45:37:39:ca:08:3a:08:b1:11:16:b3:51:82:79:98:1d:2d:57:45:d8:76:40:62:ff:8e:8b:0b:89:dd:89:9e:c5:d8:22:5f:ac:42:83:84:8f:f9:8e:f5:95:a8:bd:af:d7:fa:e6:18:58:ce:95:2d:9b:a0:05:1f:e7:7b:27:23:71:4b:6c:d8:a1:53:6d:32:2a:44:1f:6b:45:73:d6:b2:01:66:1c:d3:3a:82:41:bd:8c:30:ba:c8:1d:a3:45:33:d1:bb:30:d2:80:d9:e5:15:15:d3:4c:ce:b4:81:23:1b:e7:42:4a:86:0d:32:bc:f9:5c:30:98:1a:f1:62:be:2f:c9:5e:ae:e6:fb:0e:68:95:3c:d3:1d:11:81 -T:LOCAL_CRYPTO DECRYPT_LOCAL_REQ CHANNELID=3 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 BYPASSLEN=2 BYPASS=55:66 DATA=4c:08:b4:0c:f5:53:38:8f:2f:3f:81:09:64:08:aa:06:ea:53:22:96:28:6a:8d:44:65:13:ea:49:fb:1c:3f:8c:39:29:98:4c:74:12:b4:49:f9:17:38:8f:35:39:8f:40:6e:00:e6:0c:f4:1a:25:d1:7c:1a:89:45:6c:02:a8:1d:fd:00:20:8a:39:6a:81:48:78:0e:ab:1c:eb:53:34:8a:35:39:81:46:64:47:a5:06:f6:17:38:92:39:24:98:5c:6d:49:e6:2d:ed:1a:22:df:28:2f:81:59:75:14:e6:0c:f4:1a:25:df:2f:23:98:09:61:0a:a3:1d:b8:19:24:8c:28:25:cc:44:6f:0b:a3:1a:ec:1a:34:df:2f:25:88:48:6c:02:b5:47:b8:22:24:96:2f:3b:99:4c:20:0a:a7:05:fd:00:24:9e:38:2b:cc:5a:6f:03:a7:05:fd:00:71:8b:33:38:98:46:72:49:e6:27:ed:1d:32:df:3d:6a:83:5b:6e:06:b4:0c:b8:19:24:8c:28:25:c2:09:56:02:b5:1d:f1:11:24:93:29:27:cc:4c:75:47:a4:00:fa:16:3f:9b:29:27:cc:4c:72:06:b2:45:b8:12:25:df:2e:3f:98:5b:75:0a:e6:03:ed:00:25:90:72:6a:bd:5c:69:14:b7:1c:fd:53:21:8d:39:3e:85:5c:6d:47:aa:1c:fb:07:24:8c:7c:3a:89:45:6c:02:a8:1d:fd:00:20:8a:39:64:cc:64:61:02:a5:0c:f6:12:22:df:30:2f:8f:5d:75:14:e6:07:f1:11:39:d3:7c:2e:85:4e:6e:0e:b5:1a:f1:1e:71:8c:35:3e:cc:48:6d:02:b2:49:f2:06:22:8b:33:6a:82:46:6e:4b:e6:1a:f9:14:38:8b:28:23:9f:09:61:12:a5:1d:f7:01:71:90:2e:29:85:07:0a:6d:8f:07:ec:16:36:9a:2e:6a:8a:5b:69:09:a1:00:f4:1f:30:df:35:3a:9f:5c:6d:47:af:07:b8:00:3e:9b:3d:26:89:5a:20:06:b3:0a:ec:1c:23:d1:7c:1a:84:48:73:02:aa:05:ed:00:71:92:3d:2d:82:48:20:16:b3:08:f5:5f:71:9e:30:23:9d:5c:65:13:e6:1f:f1:07:30:9a:7c:24:85:5a:6c:47:b5:00:ec:53:30:92:39:3e:c0:09:67:15:a7:1f:f1:17:30:df:2a:2f:82:4c:6e:06:b2:00:eb:53:35:96:3d:27:c2:09:51:12:af:1a:e9:06:34:df:3d:3e:cc:44:65:13:b3:1a:b8:1c:23:91:3d:38:89:05:20:04:a9:07:eb:16:32:8b:39:3e:99:5b:20:02:a8:00:f5:53:38:91:70:6a:80:5c:63:13:b3:1a:b8:1d:34:8e:29:2f:c2:09:51:12:af:1a:e9:06:34:df:38:23:8b:47:69:14:b5:00:f5:53:35:96:3d:27:cc:5a:69:13:e6:08:f5:16:25:df:31:2b:9f:5a:61:47:a3:05:fd:1a:37:9a:32:2e:cc:4c:75:0e:b5:04:f7:17:7f:df:0c:22:8d:5a:65:0b:aa:1c:eb:53:3f:8a:30:26:8d:09:73:02:ab:45:b8:15:34:8a:3b:23:8d:5d:20:12:b2:49:fa:1a:33:9a:32:2e:99:44:20:09:a3:0a:b4:53:33:96:3e:2f:82:4d:75:0a:e6:07:f7:1d:71:90:38:23:83:07:20:2e:a8:49:e8:1b:30:8d:39:3e:9e:48:2c:47:a8:00:fa:1b:71:89:35:3e:8d:4c:20:17:a9:1b:ec:12:71:8f:34:2b:9e:4c:74:15:a7:45:b8:17:3e:93:33:38:cc:47:75:09:a5:49:fe:16:23:92:39:24:98:5c:6d:47:a8:0c:e9:06:34:d3:7c:2f:98:09:6c:06:a5:00:f6:1a:30:df:28:2f:80:45:75:14:e6:04:fd:07:24:8c:7c:2b:cc:45:69:00:b3:05:f9:5d:71:ae:29:23:9f:58:75:02:e6:08:f4:1a:20:8a:39:3e:cc:48:63:47:aa:0c:f7:53:30:df:3a:38:85:47:67:0e:aa:05:f9:5d:71:b1:29:24:8f:09:70:08:b4:1d:ec:1a:25:90:2e:6a:9a:4c:68:0e:a5:1c:f4:12:71:8a:30:26:8d:44:63:08:b4:19:fd:01:7f:df:09:3e:cc:5f:65:0f:af:0a:ed:1f:30:df:30:2f:8f:5d:75:14:e6:0a:f7:1d:27:9e:30:26:85:5a:20:09:a3:18:ed:16:71:92:33:26:80:40:73:4b:e6:0c:ec:53:3c:9e:30:2f:9f:5c:61:03:a7:49:f4:1a:33:9a:2e:25:cc:59:6f:15:b2:08:b6:79 +T:LOCAL_CRYPTO DECRYPT_LOCAL_REQ CHANNELID=3 BYPASSLEN=2 BYPASS=55:66 AAD=00:00:00:00 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 DATA=92:3c:7a:08:cc:0a:87:da:c2:07:df:70:97:cb:d9:d2:31:76:76:88:89:e4:59:b0:c5:85:d3:32:4b:2a:de:62:ab:d8:e5:8a:99:6d:26:71:1b:91:9b:f0:b2:96:7a:f0:3d:35:8a:eb:95:a3:dd:8c:f6:3b:50:a7:7a:76:17:4b:85:7f:05:7b:e1:42:f8:d7:1b:44:f6:ec:ba:d2:4c:15:ad:9a:bf:9c:db:2b:e8:50:1f:d9:6c:e6:72:95:14:ac:8b:e4:51:54:1d:a8:d8:cb:c3:3a:0b:7d:4e:92:e9:04:a3:b9:68:10:cc:fb:5a:c4:71:e9:e8:c8:c9:73:ac:01:fb:1b:8b:72:04:fa:dd:e0:66:9d:c9:18:f2:4e:8e:75:42:8c:67:91:c4:7b:f6:b3:ad:db:04:37:27:52:5a:dc:f7:78:6c:88:10:87:ff:d2:d8:bf:ae:06:9d:68:aa:e0:5a:82:72:8f:7b:93:45:33:84:30:b2:d1:48:23:04:cf:7a:48:e3:0f:4f:d6:56:79:36:6a:82:44:0a:ac:24:d6:93:6b:28:f7:9b:38:8a:48:1d:f0:c3:65:7c:c0:c1:14:6a:b0:72:7d:be:ac:46:91:2e:15:8d:64:77:53:9c:48:a9:81:f8:c0:8e:ec:e5:8d:5e:dc:e6:bb:5c:58:a6:13:0b:b3:3d:ca:d6:92:a6:a6:43:00:3f:a8:60:5e:14:9c:56:cc:8f:da:61:69:df:53:28:92:cc:5c:23:89:cd:22:70:30:c3:12:40:ca:67:df:b4:ae:1b:44:d6:e3:85:70:c4:3f:cd:60:90:56:63:16:cd:88:0c:12:ae:4a:b0:d8:80:2c:82:ae:d4:fb:f6:cd:56:7b:8b:48:f3:68:6c:8c:58:43:0d:75:0f:33:24:b4:01:b9:ae:66:7a:29:da:ed:8f:33:dd:c5:23:98:94:27:c1:c6:77:11:01:9f:86:d0:a5:a7:3c:54:e5:0f:eb:b0:6a:b5:fa:b1:6a:6e:3d:e2:5d:80:1f:3d:e3:57:64:03:47:32:54:51:3c:44:13:90:cc:20:a9:b8:c9:51:c4:73:0e:67:31:38:b2:c7:57:3a:e8:e8:2d:6b:f4:55:7f:09:c9:e0:a7:bf:42:82:7b:81:f7:02:c0:29:82:f9:96:73:0f:0d:79:ac:fb:64:68:81:31:bd:c1:59:5e:e2:60:ad:2b:bd:34:df:73:24:55:37:56:a0:6d:17:40:b6:54:5d:af:56:24:e0:bb:58:e6:26:46:df:ab:be:1c:14:40:85:6d:4c:93:d0:88:39:37:89:7f:1e:9f:52:21:c5:35:a9:7f:39:b9:5c:3e:88:6f:93:4b:ca:cc:c1:67:b2:3e:c9:73:5d:10:26:ea:25:1b:46:ed:e8:12:cb:f5:eb:18:f4:45:fc:ab:db:80:8c:f9:58:77:e0:7a:57:5d:0b:10:f5:87:d2:a0:45:0c:06:50:81:28:81:52:4d:5e:2c:45:be:bc:14:54:a5:66:5e:4a:fc:6c:86:35:c1:56:2f:56:16:0f:78:5e:1c:2b:bc:65:51:4e:a5:39:5c:86:ad:c2:aa:7a:7f:fe:65:ae:15:b8:04:03:5e:51:46:1c:db:93:4a:44:c5:4d:78:d8:cc:e9:24:b1:b2:5d:d9:58:ae:2c:f8:5c:f5:d2:64:6c:4c:e5:26:f9:5d:2f:70:09:39:57:5a:51:8c:99:c7:2f:1c:ba:ec:44:c9:57:8a:1e:76:6e:28:9c:15:d9:39:cc:38:88:f9:b5:c4:df:ae:15:36:d0:93:56:a0:77:72:b2:ff:59:8e:21:32:b3:e8:c5:1c:8a:7f:a9:ba:7e:09:c5:a3:f8:e9:3d:5a:05:3a:83:1a:34:e7:d4:8e:21:9e:eb:9e:62:3e:21:31:6a:f2:ea:ea:5b:98:84:bd:d0:31:c2:86:f2:6d:5b:f0:a3:48:d4:dc:d7:05:d1:26:fe:a7:65:a4:b4:f6:2d:cb:30:8d:4e:32:ec:50:de:06:68:c7:8e:a0:02:78:08:8d:8d:1e:d5:1b:77:ae:43:06:92:3f:3c:56:45:37:39:ca:08:3a:08:b1:11:16:b3:51:82:79:98:1d:2d:57:45:d8:76:40:62:ff:8e:8b:0b:89:dd:89:9e:c5:d8:22:5f:ac:42:83:84:8f:f9:8e:f5:95:a8:bd:af:d7:fa:e6:18:58:ce:95:2d:9b:a0:05:1f:e7:7b:27:23:71:4b:6c:d8:a1:53:6d:32:2a:44:1f:6b:45:73:d6:b2:01:66:1c:d3:3a:82:41:bd:8c:30:ba:c8:1d:a3:45:33:d1:bb:30:d2:80:d9:e5:15:15:d3:4c:ce:b4:81:23:1b:e7:42:4a:86:0d:32:bc:f9:5c:30:98:1a:f1:62:be:2f:c9:5e:ae:e6:fb:0e:68:95:3c:d3:1d:11:81 R:LOCAL_CRYPTO DECRYPTED_LOCAL_RESP CHANNELID=3 BYPASSLEN=2 BYPASS=55:66 DATA=@simulator/plaintext.txt -- 2.30.2