|
1 | 1 | #!/bin/bash |
2 | 2 |
|
3 | | -SCRIPT_VERSION="2.1.3a" |
| 3 | +SCRIPT_VERSION="2.1.4" |
4 | 4 | UPDATE_AVAILABLE=false |
5 | 5 | DIR_REMNAWAVE="/usr/local/remnawave_reverse/" |
6 | 6 | LANG_FILE="${DIR_REMNAWAVE}selected_language" |
@@ -3666,18 +3666,26 @@ EOL |
3666 | 3666 | } |
3667 | 3667 |
|
3668 | 3668 | generate_xray_keys() { |
3669 | | - docker run --rm ghcr.io/xtls/xray-core x25519 > /tmp/xray_keys.txt 2>&1 & |
3670 | | - spinner $! "${LANG[WAITING]}" |
3671 | | - wait $! |
| 3669 | + local domain_url=$1 |
| 3670 | + local token=$2 |
3672 | 3671 |
|
3673 | | - local keys=$(cat /tmp/xray_keys.txt) |
3674 | | - rm -f /tmp/xray_keys.txt |
| 3672 | + local api_response=$(make_api_request "GET" "http://$domain_url/api/system/tools/x25519/generate" "$token") |
3675 | 3673 |
|
3676 | | - if [ -z "$keys" ]; then |
| 3674 | + if [ -z "$api_response" ]; then |
3677 | 3675 | echo -e "${COLOR_RED}${LANG[ERROR_GENERATE_KEYS]}${COLOR_RESET}" |
| 3676 | + return 1 |
3678 | 3677 | fi |
3679 | 3678 |
|
3680 | | - local private_key=$(echo "$keys" | grep -E "PrivateKey:|Private key:" | sed -E 's/.*(PrivateKey|Private key):[[:space:]]*(.*)/\2/') |
| 3679 | + if echo "$api_response" | jq -e '.errorCode' > /dev/null 2>&1; then |
| 3680 | + local error_message=$(echo "$api_response" | jq -r '.message') |
| 3681 | + echo -e "${COLOR_RED}${LANG[ERROR_GENERATE_KEYS]}: $error_message${COLOR_RESET}" |
| 3682 | + fi |
| 3683 | + |
| 3684 | + local private_key=$(echo "$api_response" | jq -r '.response.keypairs[0].privateKey') |
| 3685 | + |
| 3686 | + if [ -z "$private_key" ] || [ "$private_key" = "null" ]; then |
| 3687 | + echo -e "${COLOR_RED}${LANG[ERROR_EXTRACT_PRIVATE_KEY]}${COLOR_RESET}" |
| 3688 | + fi |
3681 | 3689 |
|
3682 | 3690 | echo "$private_key" |
3683 | 3691 | } |
@@ -4640,7 +4648,7 @@ EOL |
4640 | 4648 | # Generate Xray keys |
4641 | 4649 | echo -e "${COLOR_YELLOW}${LANG[GENERATE_KEYS]}${COLOR_RESET}" |
4642 | 4650 | sleep 1 |
4643 | | - local private_key=$(generate_xray_keys) |
| 4651 | + local private_key=$(generate_xray_keys "$domain_url" "$token") |
4644 | 4652 | printf "${COLOR_GREEN}${LANG[GENERATE_KEYS_SUCCESS]}${COLOR_RESET}\n" |
4645 | 4653 |
|
4646 | 4654 | # Delete default config profile |
@@ -5172,7 +5180,7 @@ EOL |
5172 | 5180 | # Generate Xray keys |
5173 | 5181 | echo -e "${COLOR_YELLOW}${LANG[GENERATE_KEYS]}${COLOR_RESET}" |
5174 | 5182 | sleep 1 |
5175 | | - local private_key=$(generate_xray_keys) |
| 5183 | + local private_key=$(generate_xray_keys "$domain_url" "$token") |
5176 | 5184 | printf "${COLOR_GREEN}${LANG[GENERATE_KEYS_SUCCESS]}${COLOR_RESET}\n" |
5177 | 5185 |
|
5178 | 5186 | # Delete default config profile |
@@ -5464,7 +5472,7 @@ add_node_to_panel() { |
5464 | 5472 | done |
5465 | 5473 |
|
5466 | 5474 | echo -e "${COLOR_YELLOW}${LANG[GENERATE_KEYS]}${COLOR_RESET}" |
5467 | | - local private_key=$(generate_xray_keys) |
| 5475 | + local private_key=$(generate_xray_keys "$domain_url" "$token") |
5468 | 5476 | printf "${COLOR_GREEN}${LANG[GENERATE_KEYS_SUCCESS]}${COLOR_RESET}\n" |
5469 | 5477 |
|
5470 | 5478 | echo -e "${COLOR_YELLOW}${LANG[CREATING_CONFIG_PROFILE]}${COLOR_RESET}" |
|
0 commit comments