diff options
Diffstat (limited to 'usr/lib')
| -rwxr-xr-x | usr/lib/autowifi/easybox | 38 | 
1 files changed, 38 insertions, 0 deletions
| diff --git a/usr/lib/autowifi/easybox b/usr/lib/autowifi/easybox new file mode 100755 index 00000000..e5323977 --- /dev/null +++ b/usr/lib/autowifi/easybox @@ -0,0 +1,38 @@ +#!/bin/sh +#ESSID MAC CHANNEL ENCRYPTION WPA WPA2 +if ! echo $1 | grep -qi Easybox; then +    exit 1 +else +    MAC=${2?\$2 must be MAC} + +    # Take the last 2 Bytes of the MAC-Address (0B:EC), and convert it to decimal. + +    take5=${MAC:12} +    last4=${take5/:/} + +    # Fill up to 4 places with zeros, if necessary: +    deci=$(printf "%04d" "0x$last4" | sed 's/.*\(....\)/\1/;s/./& /g') +    #echo M4: ${deci[@]} +    # +    # The digits M9 to M12 are just the last digits (9.-12.) of the MAC: +    hexi=$(echo ${MAC:12:5} | sed 's/://;s/./& /g') +    #echo 'M4 (Hex): ' ${hexi[@]} +    # K1 = last byte of (d0 + d1 + h2 + h3) +    # K2 = last byte of (h0 + h1 + d2 + d3) +    c1=$(printf "%d + %d + %d + %d" ${deci:0:1} ${deci:2:1} 0x${hexi:4:1} 0x${hexi:6:1}) +    c2=$(printf "%d + %d + %d + %d" 0x${hexi:0:1} 0x${hexi:2:1} ${deci:4:1} ${deci:6:1}) +    K1=$((($c1)%16)) +    K2=$((($c2)%16)) +    #printf "K1: %x\n" $K1 +    #printf "K2: %x\n" $K2 +    X1=$((K1^${deci:6:1})) +    X2=$((K1^${deci:4:1})) +    X3=$((K1^${deci:2:1})) +    Y1=$((K2^0x${hexi:2:1})) +    Y2=$((K2^0x${hexi:4:1})) +    Y3=$((K2^0x${hexi:6:1})) +    Z1=$((0x${hexi:4:1}^${deci:6:1})) +    Z2=$((0x${hexi:6:1}^${deci:4:1})) +    Z3=$((K1^K2)) +    printf "%x%x%x%x%x%x%x%x%x\n" $X1 $Y1 $Z1 $X2 $Y2 $Z2 $X3 $Y3 $Z3 | tr a-f A-F +fi | 
