add scripts to test cryptomod IRL
authorMazet Laurent <laurent.mazet@thalesgroup.com>
Fri, 9 May 2025 08:14:15 +0000 (10:14 +0200)
committerMazet Laurent <laurent.mazet@thalesgroup.com>
Fri, 9 May 2025 08:14:15 +0000 (10:14 +0200)
cryptomod/plaintext.txt [new file with mode: 0644]
cryptomod/script-black.eth [new file with mode: 0644]
cryptomod/script-cryptomod.sh [new file with mode: 0755]
cryptomod/script-red.eth [new file with mode: 0644]

diff --git a/cryptomod/plaintext.txt b/cryptomod/plaintext.txt
new file mode 100644 (file)
index 0000000..8a1ef7c
--- /dev/null
@@ -0,0 +1,3 @@
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque maximus euismod condimentum. Duis tempus elit sit amet justo molestie sodales. Quisque malesuada sodales tortor. Nunc a ornare justo. Vestibulum eu bibendum erat, at rutrum justo. Quisque pretium luctus pellentesque. Maecenas lectus nibh, dignissim sit amet justo non, sagittis auctor orci.
+
+Integer fringilla ipsum in sodales auctor. Phasellus magna quam, aliquet vitae nisl sit amet, gravida venenatis diam. Quisque at metus ornare, consectetur enim in, luctus neque. Quisque dignissim diam sit amet massa eleifend euismod. Phasellus nulla sem, feugiat ut bibendum nec, bibendum non odio. In pharetra, nibh vitae porta pharetra, dolor nunc fermentum neque, et lacinia tellus metus a ligula. Quisque aliquet ac leo a fringilla. Nunc porttitor vehicula ullamcorper. Ut vehicula lectus convallis neque mollis, et malesuada libero porta.
diff --git a/cryptomod/script-black.eth b/cryptomod/script-black.eth
new file mode 100644 (file)
index 0000000..4238b31
--- /dev/null
@@ -0,0 +1,13 @@
+# Black test script
+
+# radio configuration
+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
+
+# 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
diff --git a/cryptomod/script-cryptomod.sh b/cryptomod/script-cryptomod.sh
new file mode 100755 (executable)
index 0000000..b5f0d76
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+[ "$CRYPTOMOD" ] || CRYPTOMOD=./cryptomod.exe
+[ "$SIMULATOR" ] || SIMULATOR=./simulator.exe
+
+ETH_RADIORED=enp0s4://52:54:00:12:34:57
+ETH_SECRED=enp0s4://52:54:00:12:34:59
+ETH_SECBLACK=enp0s4://52:54:00:12:34:59
+ETH_RADIOBLACK=enp0s4://52:54:00:12:34:57
+
+case "$1" in
+red)
+    #gdb $SIMULATOR --args \
+    $SIMULATOR -l script-red.log \
+        -s BYPASS -t $ETH_SECRED/080D -r $ETH_SECRED/080D \
+        -s CONTROL -t $ETH_SECRED/080E -r $ETH_SECRED/080E \
+        -s CROSS_CRYPTO -t $ETH_SECRED/0809 -r $ETH_SECRED/0809 \
+        -s PROVISIONING -t $ETH_SECRED/080B -r $ETH_SECRED/080B \
+        script-red.eth -v 3 -V 3
+    ;;
+secu)
+    #gdb $CRYPTOMOD --args \
+    $CRYPTOMOD -l cryptomod.log \
+        -s BYPASS_B2R -t $ETH_RADIORED/080D -r $ETH_RADIOBLACK/081D \
+        -s BYPASS_R2B -t $ETH_RADIOBLACK/081D -r $ETH_RADIORED/080D \
+        -s CONTROL -t $ETH_RADIORED/080E -r $ETH_RADIORED/080E \
+        -s CROSS_CRYPTO_B2R -t $ETH_RADIORED/0809 -r $ETH_RADIOBLACK/0819 \
+        -s CROSS_CRYPTO_R2B -t $ETH_RADIOBLACK/0819 -r $ETH_RADIORED/0809 \
+        -s PROVISIONING -t $ETH_RADIORED/080B -r $ETH_RADIORED/080B
+    ;;
+black)
+    #gdb $SIMULATOR --args \
+    $SIMULATOR -l script-black.log \
+        -s BYPASS -t $ETH_SECBLACK/081D -r $ETH_SECBLACK/081D \
+        -s CROSS_CRYPTO -t $ETH_SECBLACK/0819 -r $ETH_SECBLACK/0819 \
+        script-black.eth -v 3 -V 3
+    ;;
+*)
+    echo "usage: $(basename $0) [red|secu|black]"
+esac
+
+# vim: set ts=4 sw=4 si et:
diff --git a/cryptomod/script-red.eth b/cryptomod/script-red.eth
new file mode 100644 (file)
index 0000000..cc34ec7
--- /dev/null
@@ -0,0 +1,51 @@
+# Red test script
+
+SLEEP 500
+
+# check initializing state
+T:CONTROL STATUS_REQ
+R:CONTROL STATUS_RESP STATUS=3
+
+# authentification
+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
+R:PROVISIONING LOAD_KEY_RESP STATUS=0
+#T:PROVISIONING LOAD_KEY_REQ KEYID=0 KEY=@key.txt
+#R:PROVISIONING LOAD_KEY_RESP STATUS=0
+
+# channel association
+T:PROVISIONING ASSOCIATE_CHANNEL_REQ CHANNELID=0 KEYID=0
+R:PROVISIONING ASSOCIATE_CHANNEL_RESP STATUS=0
+
+# radio configuration
+T:BYPASS BYPASS_CROSS_ASYNC DATA="Radio\ Configuration"
+
+# check ready state
+T:CONTROL STATUS_REQ
+R:CONTROL STATUS_RESP STATUS=4
+
+# send data
+T:CROSS_CRYPTO ENCRYPT_CROSS_ASYNC CHANNELID=0 DATA=@plaintext.txt
+
+# check working state
+T:CONTROL STATUS_REQ
+R:CONTROL STATUS_RESP STATUS=5
+
+# wait
+#SLEEP 1000
+
+# receive data
+R:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC CHANNELID=0 BYPASSLEN=0 DATA=@plaintext.txt
+#R:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC CHANNELID=0 BYPASSLEN=0 DATA=@decrypted.txt
+
+# shutdowning module
+T:CONTROL LOCK_CRYPTO_REQ
+R:CONTROL LOCK_CRYPTO_RESP STATUS=0
+