@@ -412,6 +412,11 @@ get_node_uuid() {
412412 admin_get_status " $admin_port " | python3 -c " import sys,json; print(json.dumps(json.load(sys.stdin)['uuid']))" 2> /dev/null || true
413413}
414414
415+ # A deterministic, *valid* WireGuard public key: 32 bytes, so 44 base64
416+ # characters. Registration rejects anything else (see WG_PUBLIC_KEY_B64_LEN in
417+ # gateway/src/kv/import.rs), so a hand-written placeholder is not a shortcut —
418+ # it is a test that can only fail. Use a distinct seed per registration; two
419+ # instances sharing a public key are refused as a conflict.
415420test_public_key () {
416421 local seed=$1
417422 python3 -c " import base64; print(base64.b64encode(int($seed ).to_bytes(32, 'big')).decode())"
@@ -1035,7 +1040,7 @@ test_prpc_register() {
10351040 log_info " Debug service is available"
10361041
10371042 # Register via debug port
1038- local register_response=$( debug_register_cvm $debug_port " prpctest12345678901234567890123456789012= " " deadbeef" " cafebabe" )
1043+ local register_response=$( debug_register_cvm $debug_port " $( test_public_key 501 ) " " deadbeef" " cafebabe" )
10391044 log_info " Register response: $register_response "
10401045
10411046 # Verify registration succeeded
@@ -1113,7 +1118,7 @@ test_client_registration_persistence() {
11131118
11141119 # Register a client via debug port
11151120 log_info " Registering client..."
1116- local register_response=$( debug_register_cvm $debug_port " persisttest1234567890123456789012345678901= " " persist_app" " persist_inst" )
1121+ local register_response=$( debug_register_cvm $debug_port " $( test_public_key 502 ) " " persist_app" " persist_inst" )
11171122 log_info " Register response: $register_response "
11181123
11191124 # Verify registration succeeded
@@ -1169,7 +1174,7 @@ test_stress_writes() {
11691174
11701175 log_info " Registering $num_clients clients via debug port..."
11711176 for i in $( seq 1 $num_clients ) ; do
1172- local key=$( printf " stresstest%02d12345678901234567890123456= " " $i " )
1177+ local key=$( test_public_key $(( 600 + i )) )
11731178 local app_id=$( printf " stressapp%02d" " $i " )
11741179 local inst_id=$( printf " stressinst%02d" " $i " )
11751180 local response=$( debug_register_cvm $debug_port " $key " " $app_id " " $inst_id " )
@@ -1235,7 +1240,7 @@ test_network_partition() {
12351240 log_info " Registering clients on node 1 during partition..."
12361241 local success_count=0
12371242 for i in $( seq 1 3) ; do
1238- local key=$( printf " partition%02d123456789012345678901234567= " " $i " )
1243+ local key=$( test_public_key $(( 700 + i )) )
12391244 local response=$( debug_register_cvm $debug_port1 " $key " " partition_app$i " " partition_inst$i " )
12401245 if verify_register_response " $response " > /dev/null 2>&1 ; then
12411246 (( success_count++ ))
@@ -1343,7 +1348,7 @@ test_three_node_cluster() {
13431348
13441349 # Register client on node 1
13451350 log_info " Registering client on node 1..."
1346- local response=$( debug_register_cvm $debug_port1 " threenode12345678901234567890123456789= " " threenode_app" " threenode_inst" )
1351+ local response=$( debug_register_cvm $debug_port1 " $( test_public_key 503 ) " " threenode_app" " threenode_inst" )
13471352 local client_ip=$( verify_register_response " $response " )
13481353 if [[ -z " $client_ip " ]]; then
13491354 log_error " Registration failed"
@@ -1425,7 +1430,7 @@ test_wal_integrity() {
14251430
14261431 # Register some clients via debug port
14271432 for i in $( seq 1 5) ; do
1428- local key=$( printf " waltest%02d1234567890123456789012345678901= " " $i " )
1433+ local key=$( test_public_key $(( 800 + i )) )
14291434 local response=$( debug_register_cvm $debug_port " $key " " wal_app$i " " wal_inst$i " )
14301435 if verify_register_response " $response " > /dev/null 2>&1 ; then
14311436 (( success_count++ ))
@@ -1512,7 +1517,7 @@ test_three_node_bootnode() {
15121517
15131518 # Register client on node 2 (not the bootnode)
15141519 log_info " Registering client on node 2..."
1515- local response=$( debug_register_cvm $debug_port2 " bootnode12345678901234567890123456789= " " bootnode_app" " bootnode_inst" )
1520+ local response=$( debug_register_cvm $debug_port2 " $( test_public_key 504 ) " " bootnode_app" " bootnode_inst" )
15161521 local client_ip=$( verify_register_response " $response " )
15171522 if [[ -z " $client_ip " ]]; then
15181523 log_error " Registration failed"
@@ -1708,7 +1713,7 @@ test_periodic_persistence() {
17081713 log_info " Registering clients to create data..."
17091714 local success_count=0
17101715 for i in $( seq 1 3) ; do
1711- local key=$( printf " persist%02d123456789012345678901234567890= " " $i " )
1716+ local key=$( test_public_key $(( 900 + i )) )
17121717 local response=$( debug_register_cvm $debug_port " $key " " persist_app$i " " persist_inst$i " )
17131718 if verify_register_response " $response " > /dev/null 2>&1 ; then
17141719 (( success_count++ ))
@@ -1995,7 +2000,7 @@ test_node_status_register_exclude() {
19952000
19962001 # Register a client on node 1
19972002 log_info " Registering client on node 1 (node 2 is down)..."
1998- local response=$( debug_register_cvm $debug_port1 " downtest12345678901234567890123456789012= " " downtest_app" " downtest_inst" )
2003+ local response=$( debug_register_cvm $debug_port1 " $( test_public_key 505 ) " " downtest_app" " downtest_inst" )
19992004 log_info " Register response: $response "
20002005
20012006 # Verify registration succeeded
@@ -2035,7 +2040,7 @@ except Exception:
20352040
20362041 # Register another client
20372042 log_info " Registering client on node 1 (node 2 is now up)..."
2038- response=$( debug_register_cvm $debug_port1 " uptest123456789012345678901234567890123= " " uptest_app" " uptest_inst2" )
2043+ response=$( debug_register_cvm $debug_port1 " $( test_public_key 506 ) " " uptest_app" " uptest_inst2" )
20392044
20402045 # Check gateways list - should now include node 2
20412046 has_node2=$( echo " $response " | python3 -c "
@@ -2086,7 +2091,7 @@ test_node_status_register_reject() {
20862091
20872092 # Register a client when node is up (should succeed)
20882093 log_info " Registering client when node 1 is up..."
2089- local response=$( debug_register_cvm $debug_port " upnode123456789012345678901234567890123= " " upnode_app" " upnode_inst" )
2094+ local response=$( debug_register_cvm $debug_port " $( test_public_key 507 ) " " upnode_app" " upnode_inst" )
20902095 local client_ip=$( verify_register_response " $response " )
20912096 if [[ -z " $client_ip " ]]; then
20922097 log_error " Registration failed when node was up"
@@ -2101,7 +2106,7 @@ test_node_status_register_reject() {
21012106
21022107 # Try to register a client when node is down (should fail)
21032108 log_info " Attempting to register client when node 1 is down..."
2104- response=$( debug_register_cvm $debug_port " downnode12345678901234567890123456789012= " " downnode_app" " downnode_inst" )
2109+ response=$( debug_register_cvm $debug_port " $( test_public_key 508 ) " " downnode_app" " downnode_inst" )
21052110 log_info " Register response: $response "
21062111
21072112 # Check if response contains error about node being down
@@ -2123,7 +2128,7 @@ test_node_status_register_reject() {
21232128
21242129 # Register a client again (should succeed)
21252130 log_info " Registering client when node 1 is back up..."
2126- response=$( debug_register_cvm $debug_port " backup123456789012345678901234567890123= " " backup_app" " backup_inst" )
2131+ response=$( debug_register_cvm $debug_port " $( test_public_key 509 ) " " backup_app" " backup_inst" )
21272132 client_ip=$( verify_register_response " $response " )
21282133 if [[ -z " $client_ip " ]]; then
21292134 log_error " Registration failed when node was back up"
0 commit comments