tinc: fetch ed25519 public keys from uci

Fetch Ed25519 public keys from UCI host sections.
Update options and syntax to current version.

Signed-off-by: Vladislav Grigoryev <vg.aetera@gmail.com>
This commit is contained in:
Vladislav Grigoryev 2023-11-03 08:47:38 +03:00 committed by Rosen Penev
parent 56e29ed7da
commit 10d923d8f4
2 changed files with 29 additions and 12 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=tinc PKG_NAME:=tinc
PKG_VERSION:=1.1pre18 PKG_VERSION:=1.1pre18
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://tinc-vpn.org/packages PKG_SOURCE_URL:=https://tinc-vpn.org/packages

View File

@ -91,11 +91,16 @@ prepare_host() {
HOST_CONF_FILE="$TMP_TINC/$n/hosts/$s" HOST_CONF_FILE="$TMP_TINC/$n/hosts/$s"
MANDATORY_PARAM_IN_UCI=0 MANDATORY_PARAM_IN_UCI=0
[ ! -f "/etc/tinc/$n/hosts/$s" ] && { [ ! -f "/etc/tinc/$n/hosts/$s" ] && {
config_get pk "$s" "PublicKey" config_get pk_i "$s" "PublicKey"
config_get pk_f "$s" "PublicKeyFile"
config_get pked_i "$s" "Ed25519PublicKey"
config_get pked_f "$s" "Ed25519PublicKeyFile"
config_get na "$s" "Name" config_get na "$s" "Name"
if [ -n "$pk" -a -n "$na" ] ; then if [ -n "$na" ] ; then
HOST_CONF_FILE="$TMP_TINC/$n/hosts/$na" HOST_CONF_FILE="$TMP_TINC/$n/hosts/$na"
MANDATORY_PARAM_IN_UCI=1 fi
if [ -n "$pk_i$pk_f$pked_i$pked_f" ] ; then
MANDATORY_PARAM_IN_UCI=1
fi fi
} }
@ -107,7 +112,7 @@ prepare_host() {
[ ! -f "/etc/tinc/$n/hosts/$s" ] && { [ ! -f "/etc/tinc/$n/hosts/$s" ] && {
if [ "$MANDATORY_PARAM_IN_UCI" -eq 1 ] ; then if [ "$MANDATORY_PARAM_IN_UCI" -eq 1 ] ; then
touch "$HOST_CONF_FILE" ; touch "$HOST_CONF_FILE"
else else
echo -n "tinc: Warning, public key for $s for network $n " echo -n "tinc: Warning, public key for $s for network $n "
echo -n "missing in /etc/tinc/$n/hosts/$s, " echo -n "missing in /etc/tinc/$n/hosts/$s, "
@ -118,12 +123,25 @@ prepare_host() {
# append flags # append flags
append_conf_bools "$s" "$HOST_CONF_FILE" \ append_conf_bools "$s" "$HOST_CONF_FILE" \
ClampMSS IndirectData PMTUDiscovery TCPOnly ClampMSS \
IndirectData \
PMTUDiscovery \
TCPOnly
# append params # append params
append_conf_params "$s" "$HOST_CONF_FILE" \ append_conf_params "$s" "$HOST_CONF_FILE" \
Address Cipher Compression Digest Ed25519PublicKey MACLength Name PMTU \ Address \
Port PublicKey PublicKeyFile Subnet Cipher \
Compression \
Digest \
Ed25519PublicKey \
Ed25519PublicKeyFile \
MACLength \
PMTU \
Port \
PublicKey \
PublicKeyFile \
Subnet
} }
check_gen_own_key() { check_gen_own_key() {
@ -139,9 +157,9 @@ check_gen_own_key() {
config_get k "$s" key_size config_get k "$s" key_size
if [ -z "$k" ]; then if [ -z "$k" ]; then
$BIN -c "$TMP_TINC/$s" --generate-keys </dev/null $BIN -c "$TMP_TINC/$s" generate-keys </dev/null
else else
$BIN -c "$TMP_TINC/$s" "--generate-keys=$k" </dev/null $BIN -c "$TMP_TINC/$s" generate-keys "$k" </dev/null
fi fi
[ ! -d "/etc/tinc/$s/hosts" ] && mkdir -p "/etc/tinc/$s/hosts" [ ! -d "/etc/tinc/$s/hosts" ] && mkdir -p "/etc/tinc/$s/hosts"
@ -187,7 +205,6 @@ prepare_net() {
Device \ Device \
DeviceType \ DeviceType \
Ed25519PrivateKeyFile \ Ed25519PrivateKeyFile \
ECDSAPublicKey \
Forwarding \ Forwarding \
Interface \ Interface \
ListenAddress \ ListenAddress \