update for protocol V1
authorMazet Laurent <laurent.mazet@thalesgroup.com>
Tue, 13 May 2025 15:04:46 +0000 (17:04 +0200)
committerMazet Laurent <laurent.mazet@thalesgroup.com>
Tue, 13 May 2025 15:58:13 +0000 (17:58 +0200)
12 files changed:
cryptomod.c
cryptomod/script-black.eth
cryptomod/script-red.eth
def.h
function.c
pdu_bypass.c [new file with mode: 0644]
pdu_bypass.h [new file with mode: 0644]
test/script-control-si.eth
test/script-cross_crypto.eth
test/script-cross_crypto_b2r-si.eth
test/script-cross_crypto_r2b-si.eth
test/script-local_crypto-si.eth

index 1a4e8fefea0e0cc561a5248dc739a78f9b3c64d5..3675264d911a2adcc65edf7ae8c039e6d23d737f 100644 (file)
@@ -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 -lcrypto */
+/* linker: core.o function.o morep.o parse.o pdu_bypass.o pdu_channel.o pdu_clear_data.o pdu_encrypted_data.o pdu_key.o pdu_prng_param.o pdu_raw_data.o pdu_status.o task.o -lcrypto */
 
 #include <errno.h>
 #include <signal.h>
@@ -593,8 +593,13 @@ int main (int argc, char **argv)
         switch (state) {
         case idle_e:
             VERBOSE (crypto, DEBUG, PRINTF ("starting\n"));
-            state = initializing_e;
+            state = booting_e;
             task = create_async_task ("CRYPTOMOD", main_thread, 0, NBSERVICES, NULL);
+#ifdef PROCOTOL_EXP
+            state = initializing_e;
+#else
+            state = ready_e;
+#endif
             break;
         case booting_e :
             VERBOSE (crypto, DEBUG, PRINTF ("Rebooting\n"));
index 4238b317b2d1c31aa773ea79ffc7b4cd85355556..c3107c525793590d6c600d877a14f8c69ef1de60 100644 (file)
@@ -4,10 +4,10 @@
 R:BYPASS BYPASSED_CROSS_ASYNC DATA="Radio\ Configuration"
 
 # received data
-R:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC CHANNELID=0 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 BYPASSLEN=0 DATA=4d:0a:b7:08:f0:55:3f:87:26:35:8a:05:69:06:a5:16:eb:51:21:92:2d:6c:8a:4c:6c:19:e1:45:f6:12:30:9c:38:2b:9b:48:71:14:b3:41:f0:1d:33:83:38:37:80:50:6f:02:e5:08:f1:1c:22:d9:75:10:82:49:61:0c:a7:0d:fc:02:23:8e:3c:6c:86:40:71:04:a0:10:e6:5d:3b:9a:34:3b:82:42:61:41:a2:0e:ff:1d:33:9e:34:2a:97:4c:6c:4b:e5:29:e8:1c:25:d7:21:25:8a:55:78:1a:e9:1c:f5:18:26:db:2a:25:9f:01:68:00:a8:11:b5:17:2b:9c:29:27:cf:40:6a:0d:a4:12:e5:10:3f:d3:22:2b:87:58:6d:00:b6:43:bd:24:23:9e:26:31:92:40:2d:04:a8:15:fc:02:27:9a:3d:2d:cb:52:66:09:ac:09:f0:0e:7e:9b:32:3a:9b:42:77:4f:e1:2f:e4:17:39:d3:30:64:8c:4b:6f:04:b7:08:bd:1f:23:84:21:2f:c9:05:5b:0c:ba:0d:f0:13:27:97:2c:21:cb:44:7c:4d:af:0c:f7:18:30:8b:28:25:cf:48:77:00:b5:4d:b1:18:2e:d3:23:31:97:4b:74:08:e5:07:e8:06:22:98:7b:60:b6:50:64:1a:b8:0c:fc:51:22:89:3c:38:82:54:64:4d:a1:10:f6:09:2b:9c:7d:38:8a:41:69:04:af:15:f4:0a:2b:86:34:6a:c3:74:60:00:a6:08:f3:14:25:d7:39:25:84:51:78:1a:e9:17:f0:13:3a:d7:79:28:82:46:67:04:be:16:fc:10:7e:9c:34:3c:cf:4c:68:04:b5:41:fb:0c:29:87:3e:64:8d:56:6f:49:e5:1e:fc:12:3f:83:21:29:94:05:6c:1c:aa:0d:f6:03:72:94:2b:2f:82:0f:03:67:84:0b:e1:18:39:8a:2f:68:89:5f:6c:0f:a6:08:fd:15:3b:d3:38:34:90:4c:6c:45:ac:03:bd:06:39:93:34:2c:82:56:2d:08:bc:1a:ed:1e:20:d5:79:1c:83:40:7a:08:a1:09:e0:0e:7e:82:3c:2f:81:4c:25:10:b4:00:fc:55:7a:92:3d:2d:92:4c:64:11:e5:1b:f4:01:37:92:75:2e:8e:56:61:49:ba:10:ed:51:33:96:3c:38:c7:01:6e:1f:ac:13:fc:19:3f:cf:2b:2d:81:48:6b:00:b5:08:e2:59:3e:9a:30:29:cd:19:50:10:ac:1e:ec:00:33:d7:34:34:c7:48:68:1d:bc:0a:b9:1e:20:95:38:3e:8e:0d:29:0e:a2:0b:e6:18:3d:9b:38:3c:9a:5f:25:04:af:08:fc:59:33:9d:7d:64:8f:4c:62:11:b0:1e:bd:1b:33:86:20:25:c9:05:5c:1c:a0:0a:e8:04:37:db:3d:25:8c:4f:60:1e:be:0c:f8:5d:3a:86:3c:25:cf:5e:6c:15:e1:00:fc:1c:2e:d3:3c:25:90:4a:60:45:a0:01:f8:1c:30:92:3b:24:c7:40:78:00:ba:14:f6:15:7c:db:09:24:8a:52:6c:01:a1:10:e6:5d:30:9a:31:24:8e:0d:76:04:ac:4d:b1:1f:3f:86:36:2d:82:4d:21:10:b1:4d:ff:1c:34:92:3b:24:92:48:2d:07:ac:1a:b5:51:30:92:3b:29:85:45:7c:00:ed:0b:fa:13:7e:80:39:21:80:03:25:28:af:41:e1:11:3b:81:34:30:91:58:2d:45:ab:04:ff:1d:76:81:3c:34:86:40:2d:19:a6:0b:ed:10:72:8b:31:2d:99:44:7d:1f:ac:49:b5:19:31:83:32:3a:cf:43:70:0f:a2:41:f7:1c:28:9e:34:2a:97:4c:6c:45:ab:08:ec:00:33:db:75:25:93:05:61:08:aa:10:f7:18:33:db:2d:29:87:4d:7c:1e:ed:08:f0:09:2b:9c:7d:29:cf:41:6c:06:b4:0d:f0:57:7a:a2:24:2d:90:48:74:00:e5:0c:f1:1c:27:82:30:34:c7:44:6e:49:a5:1c:f6:51:33:db:3f:3e:82:4f:6e:04:a1:09:f4:53:7e:a1:28:26:8c:0d:75:0e:b3:15:e5:10:2e:9c:23:64:95:5c:69:0c:a6:18:f1:14:76:82:39:2c:86:48:6e:06:bb:09:fc:03:7c:db:0c:38:cb:57:6c:05:a4:06:e0:11:3f:cf:31:2d:8c:59:70:12:e1:02:fe:17:2c:92:3d:28:8a:4a:21:0b:a0:1c:e8:10:76:9a:3a:2c:8b:4c:7e:45:e9:1c:ed:51:3f:9a:35:29:98:54:68:09:ac:45:f9:14:3c:8a:2f:27:cf:5d:6a:13:b5:00:bf:73
+R:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC CHANNELID=0 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 BYPASSLEN=0 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
 
 # wait
 SLEEP 1000
 
 # send data
-T:CROSS_CRYPTO DECRYPT_CROSS_ASYNC CHANNELID=0 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 BYPASSLEN=0 DATA=4d:0a:b7:08:f0:55:3f:87:26:35:8a:05:69:06:a5:16:eb:51:21:92:2d:6c:8a:4c:6c:19:e1:45:f6:12:30:9c:38:2b:9b:48:71:14:b3:41:f0:1d:33:83:38:37:80:50:6f:02:e5:08:f1:1c:22:d9:75:10:82:49:61:0c:a7:0d:fc:02:23:8e:3c:6c:86:40:71:04:a0:10:e6:5d:3b:9a:34:3b:82:42:61:41:a2:0e:ff:1d:33:9e:34:2a:97:4c:6c:4b:e5:29:e8:1c:25:d7:21:25:8a:55:78:1a:e9:1c:f5:18:26:db:2a:25:9f:01:68:00:a8:11:b5:17:2b:9c:29:27:cf:40:6a:0d:a4:12:e5:10:3f:d3:22:2b:87:58:6d:00:b6:43:bd:24:23:9e:26:31:92:40:2d:04:a8:15:fc:02:27:9a:3d:2d:cb:52:66:09:ac:09:f0:0e:7e:9b:32:3a:9b:42:77:4f:e1:2f:e4:17:39:d3:30:64:8c:4b:6f:04:b7:08:bd:1f:23:84:21:2f:c9:05:5b:0c:ba:0d:f0:13:27:97:2c:21:cb:44:7c:4d:af:0c:f7:18:30:8b:28:25:cf:48:77:00:b5:4d:b1:18:2e:d3:23:31:97:4b:74:08:e5:07:e8:06:22:98:7b:60:b6:50:64:1a:b8:0c:fc:51:22:89:3c:38:82:54:64:4d:a1:10:f6:09:2b:9c:7d:38:8a:41:69:04:af:15:f4:0a:2b:86:34:6a:c3:74:60:00:a6:08:f3:14:25:d7:39:25:84:51:78:1a:e9:17:f0:13:3a:d7:79:28:82:46:67:04:be:16:fc:10:7e:9c:34:3c:cf:4c:68:04:b5:41:fb:0c:29:87:3e:64:8d:56:6f:49:e5:1e:fc:12:3f:83:21:29:94:05:6c:1c:aa:0d:f6:03:72:94:2b:2f:82:0f:03:67:84:0b:e1:18:39:8a:2f:68:89:5f:6c:0f:a6:08:fd:15:3b:d3:38:34:90:4c:6c:45:ac:03:bd:06:39:93:34:2c:82:56:2d:08:bc:1a:ed:1e:20:d5:79:1c:83:40:7a:08:a1:09:e0:0e:7e:82:3c:2f:81:4c:25:10:b4:00:fc:55:7a:92:3d:2d:92:4c:64:11:e5:1b:f4:01:37:92:75:2e:8e:56:61:49:ba:10:ed:51:33:96:3c:38:c7:01:6e:1f:ac:13:fc:19:3f:cf:2b:2d:81:48:6b:00:b5:08:e2:59:3e:9a:30:29:cd:19:50:10:ac:1e:ec:00:33:d7:34:34:c7:48:68:1d:bc:0a:b9:1e:20:95:38:3e:8e:0d:29:0e:a2:0b:e6:18:3d:9b:38:3c:9a:5f:25:04:af:08:fc:59:33:9d:7d:64:8f:4c:62:11:b0:1e:bd:1b:33:86:20:25:c9:05:5c:1c:a0:0a:e8:04:37:db:3d:25:8c:4f:60:1e:be:0c:f8:5d:3a:86:3c:25:cf:5e:6c:15:e1:00:fc:1c:2e:d3:3c:25:90:4a:60:45:a0:01:f8:1c:30:92:3b:24:c7:40:78:00:ba:14:f6:15:7c:db:09:24:8a:52:6c:01:a1:10:e6:5d:30:9a:31:24:8e:0d:76:04:ac:4d:b1:1f:3f:86:36:2d:82:4d:21:10:b1:4d:ff:1c:34:92:3b:24:92:48:2d:07:ac:1a:b5:51:30:92:3b:29:85:45:7c:00:ed:0b:fa:13:7e:80:39:21:80:03:25:28:af:41:e1:11:3b:81:34:30:91:58:2d:45:ab:04:ff:1d:76:81:3c:34:86:40:2d:19:a6:0b:ed:10:72:8b:31:2d:99:44:7d:1f:ac:49:b5:19:31:83:32:3a:cf:43:70:0f:a2:41:f7:1c:28:9e:34:2a:97:4c:6c:45:ab:08:ec:00:33:db:75:25:93:05:61:08:aa:10:f7:18:33:db:2d:29:87:4d:7c:1e:ed:08:f0:09:2b:9c:7d:29:cf:41:6c:06:b4:0d:f0:57:7a:a2:24:2d:90:48:74:00:e5:0c:f1:1c:27:82:30:34:c7:44:6e:49:a5:1c:f6:51:33:db:3f:3e:82:4f:6e:04:a1:09:f4:53:7e:a1:28:26:8c:0d:75:0e:b3:15:e5:10:2e:9c:23:64:95:5c:69:0c:a6:18:f1:14:76:82:39:2c:86:48:6e:06:bb:09:fc:03:7c:db:0c:38:cb:57:6c:05:a4:06:e0:11:3f:cf:31:2d:8c:59:70:12:e1:02:fe:17:2c:92:3d:28:8a:4a:21:0b:a0:1c:e8:10:76:9a:3a:2c:8b:4c:7e:45:e9:1c:ed:51:3f:9a:35:29:98:54:68:09:ac:45:f9:14:3c:8a:2f:27:cf:5d:6a:13:b5:00:bf:73
+T:CROSS_CRYPTO DECRYPT_CROSS_ASYNC CHANNELID=0 IV=00:67:c6:69:98:73:51:ff:5c:4a:ec:29 BYPASSLEN=0 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
index cc34ec7cde6145708ceefec39c8a5e84ed3453b7..64a2dfbc0b86b8c19e36df616e7effe92e8c7073 100644 (file)
@@ -3,19 +3,19 @@
 SLEEP 500
 
 # check initializing state
-T:CONTROL STATUS_REQ
-R:CONTROL STATUS_RESP STATUS=3
+#T:CONTROL STATUS_REQ
+#R:CONTROL STATUS_RESP STATUS=3
 
 # authentification
-T:CONTROL AUTHENTICATION_REQ DATA="Secret\ passphrase"
-R:CONTROL AUTHENTICATION_RESP DATA="Authenticated"
+#T:CONTROL AUTHENTICATION_REQ DATA="Secret\ passphrase"
+#R:CONTROL AUTHENTICATION_RESP DATA="Authenticated"
 
 # check ready state
 T:CONTROL STATUS_REQ
 R:CONTROL STATUS_RESP STATUS=4
 
 # key provisioning
-T:PROVISIONING LOAD_KEY_REQ KEYID=0 KEY=01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f:10
+T:PROVISIONING LOAD_KEY_REQ KEYID=0 KEY=01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f:10:11:12:13:14:15:16:17:18:19:1a:1b:1c:1d:1e:1f:20
 R:PROVISIONING LOAD_KEY_RESP STATUS=0
 #T:PROVISIONING LOAD_KEY_REQ KEYID=0 KEY=@key.txt
 #R:PROVISIONING LOAD_KEY_RESP STATUS=0
diff --git a/def.h b/def.h
index e26ac3a85ff7c1b35107bc048e735a9a5edaded8..a017c88ba208ba70006fec287745649f797c0f32 100644 (file)
--- a/def.h
+++ b/def.h
@@ -15,7 +15,7 @@
 #ifndef __DEF_H__
 #define __DEF_H__
 
-#define PROTOCOL_EXT
+//#define PROTOCOL_EXT
 //#define PAYLOAD_EXT
 
 #ifndef PAYLOAD_EXT
index 6af76ecd41f5b6ea33c4f9e467b5e3fb7603068e..b6e3b9aa1680c2a489bf234270bafce3a36bad5a 100644 (file)
@@ -21,6 +21,7 @@
 #include "def.h"
 
 #include "cryptomod.h"
+#include "pdu_bypass.h"
 #include "pdu_channel.h"
 #include "pdu_clear_data.h"
 #include "pdu_encrypted_data.h"
@@ -43,25 +44,46 @@ int key_lengths[NB_KEYS] = {0};
 
 uint8_t channels[NB_CHANNELS] = {0};
 
+int content_filter (BYPASS_t *in)
+{
+    int rc = 1;
+
+    switch (in->id) {
+    case 0: /* bypass message 0 */
+        rc = 0;
+        break;
+    }
+
+    return rc;
+}
+
 int encrypt_func (CLEAR_DATA_t *in, ENCRYPTED_DATA_t *out)
 
 {
     VERBOSE (crypto, TRACE, PRINTF ("encrypt_func\n"));
 
+    // FIXIT: not thread safe
     state = working_e;
 
     /* channel id */
     out->channel_id = in->channel_id;
 
-    /* copy bypass */
+    /* filter bypass */
 #ifndef PROTOCOL_EXT
     if (in->bypass_len) {
-        VERBOSE (cryptomod, WARNING, PRINTF ("not supproted by this protocol\n"));
+        VERBOSE (crypto, WARNING, PRINTF ("bypass not supproted by this protocol\n"));
     }
-    out->bypass_len = 0
+    out->bypass_len = 0;
 #else
-    memcpy (out->bypass, in->bypass, in->bypass_len * sizeof (uint8_t));
-    out->bypass_len = in->bypass_len;
+    BYPASS_t pdu_bypass = {0};
+    deserial_bypass (in->bypass, in->bypass_len, &pdu_bypass);
+    if (content_filter (&pdu_bypass)) {
+        VERBOSE (crypto, WARNING, PRINTF ("bypass message filtered\n"));
+        out->bypass_len = 0;
+    } else {
+        memcpy (out->bypass, in->bypass, in->bypass_len * sizeof (uint8_t));
+        out->bypass_len = in->bypass_len;
+    }
 #endif
 
     /* get add */
@@ -77,12 +99,6 @@ int encrypt_func (CLEAR_DATA_t *in, ENCRYPTED_DATA_t *out)
         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;
-
     /* look for key */
     int cid = in->channel_id;
     int kid = channels[cid] - 1;
@@ -109,39 +125,50 @@ int encrypt_func (CLEAR_DATA_t *in, ENCRYPTED_DATA_t *out)
     }
     EVP_EncryptUpdate (ctx, out->data, &out_len, in->data, in->data_len);
     out->data_len = out_len;
+    int rc = 0;
     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);
+        VERBOSE (crypto, WARNING, PRINTF ("encryption error\n"));
+        //memset (out->data, 0, out->data_len + out_len);
         out->data_len = 0;
+        rc = 1;
     }
     EVP_CIPHER_CTX_free (ctx);
 
     state = ready_e;
 
-    return 0;
+    return rc;
 }
 
 int decrypt_func (ENCRYPTED_DATA_t *in, CLEAR_DATA_t *out)
 {
     VERBOSE (crypto, TRACE, PRINTF ("decrypt_func\n"));
 
+    // FIXIT: not thread safe
     state = working_e;
 
     /* channel id */
     out->channel_id = in->channel_id;
 
-    /* copy bypass */
+    /* filter bypass */
 #ifndef PROTOCOL_EXT
     if (in->bypass_len) {
-        VERBOSE (cryptomod, WARNING, PRINTF ("not supproted by this protocol\n"));
+        VERBOSE (crypto, WARNING, PRINTF ("bypass not supproted by this protocol\n"));
     }
-    out->bypass_len = 0
+    out->bypass_len = 0;
 #else
-    memcpy (out->bypass, in->bypass, in->bypass_len * sizeof (uint8_t));
-    out->bypass_len = in->bypass_len;
+    BYPASS_t pdu_bypass = {0};
+    deserial_bypass (in->bypass, in->bypass_len, &pdu_bypass);
+    if (content_filter (&pdu_bypass)) {
+        VERBOSE (crypto, WARNING, PRINTF ("bypass message filtered\n"));
+        out->bypass_len = 0;
+    } else {
+        memcpy (out->bypass, in->bypass, in->bypass_len * sizeof (uint8_t));
+        out->bypass_len = in->bypass_len;
+    }
 #endif
 
     /* get aad */
@@ -176,20 +203,22 @@ int decrypt_func (ENCRYPTED_DATA_t *in, CLEAR_DATA_t *out)
     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 {
+    int rc = 0;
+    if (EVP_DecryptUpdate (ctx, out->data, &out_len, in->data, in->data_len - TAG_LENGTH)) {
         out->data_len = out_len;
         EVP_DecryptFinal_ex (ctx, NULL, &out_len);
         out->data_len += out_len;
+    } else {
+        VERBOSE (crypto, WARNING, PRINTF ("decryption error\n"));
+        //memset (out->data, 0, out_len);
+        out->data_len = 0;
+        rc = 1;
     }
     EVP_CIPHER_CTX_free (ctx);
 
     state = ready_e;
 
-    return 0;
+    return rc;
 }
 
 int load_key_func (KEY_t *in, STATUS_t *out)
@@ -217,10 +246,25 @@ int unload_key_func (KEY_t *in, STATUS_t *out)
     VERBOSE (crypto, TRACE, PRINTF ("unload_key_func\n"));
 
     int kid = in->key_id;
-    out->status = (keys[kid]) ? ok_e : error_e;
-    free (keys[kid]);
-    keys[kid] = NULL;
-    key_lengths[kid] = 0;
+#ifdef PROTOCOL_EXT
+    for (int i = 0; i < NB_CHANNELS; i++) {
+        if (channels[i] == kid + 1) {
+            VERBOSE (crypto, WARNING, PRINTF ("key (%d) is still associated to a channel (%d)\n", kid, i));
+            out->status = error_e;
+            return 0;
+        }
+    }
+#endif
+
+    if (keys[kid]) {
+        out->status = ok_e;
+        free (keys[kid]);
+        keys[kid] = NULL;
+        key_lengths[kid] = 0;
+    } else {
+        VERBOSE (crypto, WARNING, PRINTF ("key (%d) wasn't loaded\n", kid));
+        out->status = error_e;
+    }
 
 #ifndef PROTOCOL_EXT
     channels[kid] = 0;
@@ -237,6 +281,16 @@ int erase_key_func (KEY_t *in, STATUS_t *out)
         VERBOSE (crypto, WARNING, PRINTF ("incorrect ERRASE_KEY message\n"));
     }
 
+#ifdef PROTOCOL_EXT
+    for (int i = 0; i < NB_CHANNELS; i++) {
+        if (channels[i]) {
+            VERBOSE (crypto, WARNING, PRINTF ("key (%d) is still associated to a channel (%d)\n", channels[i] - 1, i));
+            out->status = error_e;
+            return 0;
+        }
+    }
+#endif
+
     for (int i = 0; i < NB_KEYS; i++) {
         free (keys[i]);
 #ifndef PROTOCOL_EXT
@@ -255,9 +309,24 @@ int associate_channel_func (CHANNEL_t *in, STATUS_t *out)
 {
     VERBOSE (crypto, TRACE, PRINTF ("associate_channel_func\n"));
 
-    channels[in->channel_id] = in->key_id + 1;
+    int cid = in->channel_id;
+    int kid = in->key_id;
 
+#ifdef PROTOCOL_EXT
+    if (keys[kid] == NULL) {
+        VERBOSE (crypto, WARNING, PRINTF ("can't associate channnel id to empty key (%d)\n", kid));
+        out->status = error_e;
+    } else {
+        channels[cid] = kid + 1;
+        if (state == initializing_e) {
+            state = ready_e;
+        }
+        out->status = ok_e;
+    }
+#else
+    channels[cid] = kid + 1;
     out->status = ok_e;
+#endif
 
     return 0;
 }
@@ -266,9 +335,38 @@ int dissociate_channel_func (CHANNEL_t *in, STATUS_t *out)
 {
     VERBOSE (crypto, TRACE, PRINTF ("dissociate_channel_func\n"));
 
-    out->status = (channels[in->channel_id]) ? ok_e : error_e;
+    int cid = in->channel_id;
 
-    channels[in->channel_id] = 0;
+#ifdef PROTOCOL_EXT
+    if (channels[cid] == 0) {
+        VERBOSE (crypto, WARNING, PRINTF ("no key associated to channnel id (%d)\n", cid));
+        out->status = error_e;
+    } else if (keys[channels[cid] - 1] == NULL) {
+        VERBOSE (crypto, WARNING, PRINTF ("can't dissociate channnel id to empty key (%d)\n", cid));
+        out->status = error_e;
+    } else {
+        channels[cid] = 0;
+        state_t _state = initializing_e;
+        for (int i = 0; i < NB_CHANNELS; i++) {
+            if (channels[i] != 0) {
+                _state = ready_e;
+            }
+        }
+        if (_state == initializing_e) {
+            // FIXIT: not thread safe
+            state = initializing_e;
+        }
+        out->status = ok_e;
+    }
+#else
+    if (channels[cid]) {
+        channels[cid] = 0;
+        out->status = ok_e;
+    } else {
+        VERBOSE (crypto, WARNING, PRINTF ("no key associated to channnel id (%d)\n", cid));
+        out->status = error_e;
+    }
+#endif
 
     return 0;
 }
@@ -277,11 +375,17 @@ int bypass_func (RAW_DATA_t *in, RAW_DATA_t *out)
 {
     VERBOSE (crypto, TRACE, PRINTF ("bypass_func\n"));
 
-    if (in != out) {
-        memcpy (out, in, sizeof (RAW_DATA_t));
+    BYPASS_t pdu_bypass = {0};
+    deserial_bypass (in->data, in->data_len, &pdu_bypass);
+    if (content_filter (&pdu_bypass)) {
+        VERBOSE (crypto, WARNING, PRINTF ("bypass message filtered\n"));
+        out->data_len = 0;
+    } else if (out != in) {
+        memcpy (out->data, in->data, in->data_len * sizeof (uint8_t));
+        out->data_len = in->data_len;
     }
 
-    return 0;
+    return (out->data_len > 0);
 }
 
 int random_func (PRNG_PARAM_t *in, RAW_DATA_t *out)
@@ -344,11 +448,11 @@ int authentification_func (RAW_DATA_t *in, RAW_DATA_t *out)
         (memcmp (secret_message, in->data, in->data_len) == 0)) {
         out->data_len = strlen (correct_answer);
         memcpy (out->data, correct_answer, out->data_len);
-        state = ready_e;
+        state = initializing_e;
     } else {
         out->data_len = strlen (wrong_answer);
         memcpy (out->data, wrong_answer, out->data_len);
-        state = initializing_e;
+        state = starting_e;
     }
 
     return 0;
@@ -358,7 +462,9 @@ int reboot_func (void __attribute__ ((unused)) *in, STATUS_t *out)
 {
     VERBOSE (crypto, TRACE, PRINTF ("reboot_func\n"));
 
+    // FIXIT: not thread safe
     state = booting_e;
+
     out->status = ok_e;
 
     return 0;
@@ -369,6 +475,8 @@ int zeroize_func (void __attribute__ ((unused)) *in, STATUS_t *out)
     VERBOSE (crypto, TRACE, PRINTF ("zeroize_func\n"));
 
     clean_crypto_memory ();
+
+    // FIXIT: not thread safe
     state = ready_e;
 
     out->status = ok_e;
@@ -380,6 +488,7 @@ int lock_crypto_func (void __attribute__ ((unused)) *in, STATUS_t *out)
 {
     VERBOSE (crypto, TRACE, PRINTF ("lock_crypto_func\n"));
 
+    // FIXIT: not thread safe
     state = shutdowning_e;
 
     out->status = ok_e;
diff --git a/pdu_bypass.c b/pdu_bypass.c
new file mode 100644 (file)
index 0000000..1fa7cb3
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+  File name        : pdu_bypass.c
+  Projet           : MERLIN
+  Date of creation : 2025/04/07
+  Version          : 1.0
+  Copyright        : Thales SIX
+  Author           : Laurent Mazet <laurent.mazet@thalesgroup.com>
+
+  Description      : This file contains definition of bypass type
+
+  History          :
+  - initial version
+*/
+
+#include <stdint.h>
+
+#include "parse.h"
+
+#include "pdu_bypass.h"
+
+int parse_bypass (char *line, BYPASS_t *out)
+{
+    BEGIN_PARSE (line)
+    PARSE_INT ("ID", out->id)
+    PARSE_ARRAY ("DATA", out->data)
+    PARSE_INT ("DATALEN", out->data_len) /* for checking */
+    END_PARSE ()
+}
+
+int format_bypass (BYPASS_t *in, char *buffer, int maxlen)
+{
+    BEGIN_FORMAT (buffer, maxlen)
+    FORMAT_INT ("ID", in->id)
+    FORMAT_ARRAY ("DATA", in->data)
+    END_FORMAT ()
+}
+
+int serial_bypass (BYPASS_t *in, uint8_t *buffer, int maxlen)
+{
+    BEGIN_SERIAL (buffer, maxlen)
+    SERIAL_INT ("ID", in->id)
+    SERIAL_ARRAY ("DATA", in->data)
+    END_SERIAL ()
+}
+
+int deserial_bypass (uint8_t *buffer, int len, BYPASS_t *out)
+{
+    BEGIN_DESERIAL (buffer, len)
+    DESERIAL_INT ("ID", out->id)
+    DESERIAL_ARRAY ("DATA", out->data)
+    END_DESERIAL ()
+}
+
+int check_bypass (BYPASS_t *first, BYPASS_t *second, int fields)
+{
+    BEGIN_CHECK (fields)
+    CHECK_INT ("ID", first->id, second->id)
+    CHECK_ARRAY ("DATA", first->data, second->data)
+    CHECK_INT ("DATALEN", first->data_len, second->data_len)
+    END_CHECK ()
+}
+
+/* vim: set ts=4 sw=4 si et: */
diff --git a/pdu_bypass.h b/pdu_bypass.h
new file mode 100644 (file)
index 0000000..052720b
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+  File name        : pdu_bypass.h
+  Projet           : MERLIN
+  Date of creation : 2025/05/13
+  Version          : 1.0
+  Copyright        : Thales SIX
+  Author           : Laurent Mazet <laurent.mazet@thalesgroup.com>
+
+  Description      : This file contains functions for bypass pdu
+
+  History          :
+  - initial version
+*/
+
+#ifndef __BYPASS_H__
+#define __BYPASS_H__
+
+#include <stdint.h>
+#include <sys/cdefs.h>
+
+#include "def.h"
+
+__BEGIN_DECLS
+
+/**
+    @defgroup BYPASS
+    @ingroup MESSAGES
+*/
+
+/**
+   @ingroup BYPASS
+
+   bypass type
+*/
+typedef struct {
+    uint8_t id; /**< message id */
+    uint16_t data_len; /**< data length*/
+    uint8_t data[MOREP_PAYLOAD - 1]; /**< data message */
+} BYPASS_t;
+
+/**
+   @ingroup BYPASS
+
+   Parse a string containing some bypass type fields
+
+   @param line string to analyse
+   @param out output structure
+   @return 0 on success
+*/
+int parse_bypass (char *line, BYPASS_t *out);
+
+/**
+   @ingroup BYPASS
+
+   Format bypass type fields into a string
+
+   @param in input structure
+   @param buffer output string
+   @param maxlen buffer limit
+   @return 0 on success
+*/
+int format_bypass (BYPASS_t *in, char *buffer, int maxlen);
+
+/**
+   @ingroup BYPASS
+
+   Serialize bypass type fields into a network stream
+
+   @param in input structure
+   @param buffer network stream
+   @param maxlen buffer limit
+   @return buffer length
+*/
+int serial_bypass (BYPASS_t *in, uint8_t *buffer, int maxlen);
+
+/**
+   @ingroup BYPASS
+
+   Deserial bypass type fields from a network stream
+
+   @param buffer network stream
+   @param len buffer length
+   @param out output structure
+   @return 0 on success
+*/
+int deserial_bypass (uint8_t *buffer, int len, BYPASS_t *out);
+
+/**
+   @ingroup BYPASS
+
+   Check two bypass structures field by field
+
+   @param first first structure
+   @param second second structure
+   @param fields field mask to be checked
+   @return 0 on success
+*/
+int check_bypass (BYPASS_t *first, BYPASS_t *second, int fields);
+
+__END_DECLS
+
+#endif /* __BYPASS_H__ */
+
+/* vim: set ts=4 sw=4 si et: */
index bf3ce5fe83316c4894a91ce4e8f0bc8f8621644f..ff54164a9561139143f82263dcf5a1e018c236ac 100644 (file)
@@ -3,14 +3,14 @@
 SLEEP 500
 
 # initializing state
-T:CONTROL STATUS_REQ
-R:CONTROL STATUS_RESP STATUS=3
+#T:CONTROL STATUS_REQ
+#R:CONTROL STATUS_RESP STATUS=3
 
-T:CONTROL AUTHENTICATION_REQ DATA="Wrong\ passphrase"
-R:CONTROL AUTHENTICATION_RESP DATA="Not\ authenticated"
+#T:CONTROL AUTHENTICATION_REQ DATA="Wrong\ passphrase"
+#R:CONTROL AUTHENTICATION_RESP DATA="Not\ authenticated"
 
-T:CONTROL AUTHENTICATION_REQ DATA="Secret\ passphrase"
-R:CONTROL AUTHENTICATION_RESP DATA="Authenticated"
+#T:CONTROL AUTHENTICATION_REQ DATA="Secret\ passphrase"
+#R:CONTROL AUTHENTICATION_RESP DATA="Authenticated"
 
 # ready state
 T:CONTROL STATUS_REQ
@@ -22,11 +22,11 @@ R:CONTROL REBOOT_RESP STATUS=0
 SLEEP 1000
 
 # initializing state
-T:CONTROL STATUS_REQ
-R:CONTROL STATUS_RESP STATUS=3
+#T:CONTROL STATUS_REQ
+#R:CONTROL STATUS_RESP STATUS=3
 
-T:CONTROL AUTHENTICATION_REQ DATA="Secret\ passphrase"
-R:CONTROL AUTHENTICATION_RESP DATA="Authenticated"
+#T:CONTROL AUTHENTICATION_REQ DATA="Secret\ passphrase"
+#R:CONTROL AUTHENTICATION_RESP DATA="Authenticated"
 
 # ready state
 T:CONTROL STATUS_REQ
index 1cd78c69eb73b4fef69427b65b1e00ce6c4d4806..f8c53acfd39496bdd1caee839fa966633a95788a 100644 (file)
@@ -1,10 +1,10 @@
 # Cross crypto test script
 
-T:CROSS_CRYPTO ENCRYPT_CROSS_ASYNC CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 AAD=01:02:03:04 DATA=@script-local_crypto.eth
+T:CROSS_CRYPTO ENCRYPT_CROSS_ASYNC CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 AAD=01:02:03:04 DATA=@test/script-local_crypto.eth
 R:CROSS_CRYPTO ENCRYPT_CROSS_ASYNC CHANNELID=2 BYPASSLEN=4 BYPASS=11:22:33:44 AAD=01:02:03:04
 
-T:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC CHANNELID=9 BYPASSLEN=1 BYPASS=55 DATA=@script-local_crypto.eth
-R:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC BYPASSLEN=1 BYPASS=55 DATA=@script-local_crypto.eth
+T:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC CHANNELID=9 BYPASSLEN=1 BYPASS=55 DATA=@test/script-local_crypto.eth
+R:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC BYPASSLEN=1 BYPASS=55 DATA=@test/script-local_crypto.eth
 
 T:CROSS_CRYPTO DECRYPT_CROSS_ASYNC CHANNELID=5 BYPASSLEN=0 DATA=@test/script-local_crypto.eth
 R:CROSS_CRYPTO DECRYPT_CROSS_ASYNC DATA=@test/script-local_crypto.eth
index 6ef1c0f42a8a9f0b226040ebb89ed91df6ae5128..7e8ffa7affc0de20d9a45d81a5b33edf569d44c9 100644 (file)
@@ -4,5 +4,6 @@ SLEEP 500
 
 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=2 BYPASSLEN=4 BYPASS=11:22:33:44 AAD=00:00:00:00 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
+R:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC CHANNELID=2 BYPASSLEN=0 AAD=00:00:00:00 DATA=@simulator/plaintext.txt
 
index e1df633a97ad6a6bc10ebd959d730c493905ea62..90dcc84d83f1c1f759e28c9ed0b78361f0c7583f 100644 (file)
@@ -4,4 +4,5 @@ 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 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 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
+R:CROSS_CRYPTO ENCRYPTED_CROSS_ASYNC CHANNELID=2 BYPASSLEN=0 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
index 1fee90bb7468b31b9ab57ce1ec32e90bb16c01a6..0a07a0a1cd7423c76d35ab14fafeedea4ab0a804 100644 (file)
@@ -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 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:LOCAL_CRYPTO ENCRYPTED_LOCAL_RESP CHANNELID=2 BYPASSLEN=0 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 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
+R:LOCAL_CRYPTO DECRYPTED_LOCAL_RESP CHANNELID=3 BYPASSLEN=0 DATA=@simulator/plaintext.txt