Skip to content

Commit

Permalink
add result validation to dyndisc example scripts
Browse files Browse the repository at this point in the history
reported by Philipp Jeitner and Haya Shulman, Fraunhofer SIT
  • Loading branch information
Fabian Mauchle committed May 5, 2021
1 parent 12a1703 commit ab7a2ea
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 18 deletions.
40 changes: 26 additions & 14 deletions tools/naptr-eduroam.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,41 +19,53 @@ DIGCMD=$(command -v dig)
HOSTCMD=$(command -v host)
PRINTCMD=$(command -v printf)

validate_host() {
echo ${@} | tr -d '\n\t\r' | grep -E '^[_0-9a-zA-Z][-._0-9a-zA-Z]*$'
}

validate_port() {
echo ${@} | tr -d '\n\t\r' | grep -E '^[0-9]+$'
}

dig_it_srv() {
${DIGCMD} +short srv $SRV_HOST | sort -n -k1 |
while read line; do
set $line ; PORT=$3 ; HOST=$4
$PRINTCMD "\thost ${HOST%.}:${PORT}\n"
set $line ; PORT=$(validate_port $3) ; HOST=$(validate_host $4)
if [ -n "${HOST}" ] && [ -n "${PORT}" ]; then
$PRINTCMD "\thost ${HOST%.}:${PORT}\n"
fi
done
}

dig_it_naptr() {
${DIGCMD} +short naptr ${REALM} | grep x-eduroam:radius.tls | sort -n -k1 |
while read line; do
set $line ; TYPE=$3 ; HOST=$6
if [ "$TYPE" = "\"s\"" -o "$TYPE" = "\"S\"" ]; then
SRV_HOST=${HOST%.}
dig_it_srv
fi
set $line ; TYPE=$3 ; HOST=$(validate_host $6)
if ( [ "$TYPE" = "\"s\"" ] || [ "$TYPE" = "\"S\"" ] ) && [ -n "${HOST}" ]; then
SRV_HOST=${HOST%.}
dig_it_srv
fi
done
}

host_it_srv() {
${HOSTCMD} -t srv $SRV_HOST | sort -n -k5 |
while read line; do
set $line ; PORT=$7 ; HOST=$8
$PRINTCMD "\thost ${HOST%.}:${PORT}\n"
set $line ; PORT=$(validate_port $7) ; HOST=$(validate_host $8)
if [ -n "${HOST}" ] && [ -n "${PORT}" ]; then
$PRINTCMD "\thost ${HOST%.}:${PORT}\n"
fi
done
}

host_it_naptr() {
${HOSTCMD} -t naptr ${REALM} | grep x-eduroam:radius.tls | sort -n -k5 |
while read line; do
set $line ; TYPE=$7 ; HOST=${10}
if [ "$TYPE" = "\"s\"" -o "$TYPE" = "\"S\"" ]; then
SRV_HOST=${HOST%.}
host_it_srv
fi
set $line ; TYPE=$7 ; HOST=$(validate_host ${10})
if ( [ "$TYPE" = "\"s\"" ] || [ "$TYPE" = "\"S\"" ] ) && [ -n "${HOST}" ]; then
SRV_HOST=${HOST%.}
host_it_srv
fi
done
}

Expand Down
20 changes: 16 additions & 4 deletions tools/radsec-dynsrv.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,31 @@ DIGCMD=$(command -v digaaa)
HOSTCMD=$(command -v host)
PRINTCMD=$(command -v printf)

validate_host() {
echo ${@} | tr -d '\n\t\r' | grep -E '^[_0-9a-zA-Z][-._0-9a-zA-Z]*$'
}

validate_port() {
echo ${@} | tr -d '\n\t\r' | grep -E '^[0-9]+$'
}

dig_it() {
${DIGCMD} +short srv _radsec._tcp.${REALM} | sort -n -k1 |
while read line ; do
set $line ; PORT=$3 ; HOST=$4
$PRINTCMD "\thost ${HOST%.}:${PORT}\n"
set $line ; PORT=$(validate_port $3) ; HOST=$(validate_host $4)
if [ -n "${HOST}" ] && [ -n "${PORT}" ]; then
$PRINTCMD "\thost ${HOST%.}:${PORT}\n"
fi
done
}

host_it() {
${HOSTCMD} -t srv _radsec._tcp.${REALM} | sort -n -k5 |
while read line ; do
set $line ; PORT=$7 ; HOST=$8
$PRINTCMD "\thost ${HOST%.}:${PORT}\n"
set $line ; PORT=$(validate_port $7) ; HOST=$(validate_host $8)
if [ -n "${HOST}" ] && [ -n "${PORT}" ]; then
$PRINTCMD "\thost ${HOST%.}:${PORT}\n"
fi
done
}

Expand Down

0 comments on commit ab7a2ea

Please sign in to comment.