diff options
-rw-r--r-- | GeneratePSK | 51 | ||||
-rw-r--r-- | daily-psk | 7 | ||||
-rw-r--r-- | global-config | 4 | ||||
-rw-r--r-- | global-functions | 52 |
4 files changed, 59 insertions, 55 deletions
diff --git a/GeneratePSK b/GeneratePSK deleted file mode 100644 index 4ef3b79..0000000 --- a/GeneratePSK +++ /dev/null @@ -1,51 +0,0 @@ -#!rsc -# RouterOS script: GeneratePSK -# Copyright (c) 2013-2018 Christian Hesse <mail@eworm.de> -# -# return pseudo-random string for PSK - -:local date [ / system clock get date ]; - -# 0-30 for days of month -:local secret1 { "Abusive"; "Aggressive"; "Bored"; "Chemical"; "Cold"; - "Cruel"; "Curved"; "Delightful"; "Discreet"; "Elite"; "Evasive"; "Faded"; - "Flat"; "Future"; "Grandiose"; "Hanging"; "Humorous"; "Interesting"; - "Magenta"; "Magnificent"; "Numerous"; "Optimal"; "Pathetic"; "Possessive"; - "Remarkable"; "Rightful"; "Ruthless"; "Stale"; "Unusual"; "Useless"; - "Various" }; -# 0-11 for month of year -:local secret2 { "Adhesive"; "Amusing"; "Astonishing"; "Frantic"; - "Kindhearted"; "Limping"; "Roasted"; "Robust"; "Staking"; "Thundering"; - "Ultra"; "Unusual" }; -# 0-6 for days of week -:local secret3 { "Belief"; "Button"; "Curtain"; "Edge"; "Jewel"; "String"; - "Whistle" }; - -:local months { "jan"; "feb"; "mar"; "apr"; "may"; "jun"; "jul"; "aug"; "sep"; - "oct"; "nov"; "dec" }; -:local monthtbl { 0; 3; 3; 6; 1; 4; 6; 2; 5; 0; 3; 5 }; - -:local monthstr [ :pick $date 0 3 ]; -:local month; -:local day [ :pick $date 4 6 ]; -:local century [ :pick $date 7 9 ]; -:local year [ :pick $date 9 11 ]; - -# get numeric value for month -:for mindex from=0 to=[ :len $months ] do={ - :if ([ :pick $months $mindex ] = $monthstr) do={ - :set month $mindex; - }; -}; - -# calculate day of week -:local sum 0; -:set sum ($sum + (2 * (3 - ($century - (($century / 4) * 4))))); -:set sum ($sum + ($year / 4)); -:set sum ($sum + $year + $day); -:set sum ($sum + $month); -:set sum ($sum - (($sum / 7) * 7)); - -:local return ([ :pick $secret1 ($day - 1) ] . [ :pick $secret2 $month ] . [ :pick $secret3 $sum ]); - -:return $return; @@ -6,6 +6,8 @@ :global "daily-psk-match-comment"; +:global "GeneratePSK"; + # check mail server :if ([ / tool netwatch get [ find where comment=[ / tool e-mail get address ] ] status ] != "up" ) do={ :error "Mail server is not up."; @@ -16,9 +18,8 @@ :error "Time is not yet synchronized from ntp."; } -:local GeneratePSK [ :parse [ / system script get GeneratePSK source ] ]; - -:local newpsk [ $GeneratePSK ]; +:local date [ / system clock get date ]; +:local newpsk [ $GeneratePSK $date ]; :local sendmail 0; diff --git a/global-config b/global-config index 53ad29e..02f36c6 100644 --- a/global-config +++ b/global-config @@ -71,7 +71,9 @@ #:global "script-updates-baseurl" "https://raw.githubusercontent.com/eworm-de/routeros-scripts/master/"; #:global "script-updates-baseurl" "https://gitlab.com/eworm-de/routeros-scripts/raw/master/"; :global "script-updates-urlsuffix" ""; -:global "script-updates-ignore" { "global-config"; "GeneratePSK" }; +:global "script-updates-ignore" { + "global-config" +} # Do *NOT* change these! :global "sent-routeros-update-notification" "-"; diff --git a/global-functions b/global-functions index e28a20e..5af2999 100644 --- a/global-functions +++ b/global-functions @@ -4,3 +4,55 @@ # # global functions +# return pseudo-random string for PSK +:global GeneratePSK do={ + :local date $1; + + # 0-30 for days of month + :local secret1 { "Abusive"; "Aggressive"; "Bored"; "Chemical"; "Cold"; + "Cruel"; "Curved"; "Delightful"; "Discreet"; "Elite"; "Evasive"; "Faded"; + "Flat"; "Future"; "Grandiose"; "Hanging"; "Humorous"; "Interesting"; + "Magenta"; "Magnificent"; "Numerous"; "Optimal"; "Pathetic"; "Possessive"; + "Remarkable"; "Rightful"; "Ruthless"; "Stale"; "Unusual"; "Useless"; + "Various" } + # 0-11 for month of year + :local secret2 { "Adhesive"; "Amusing"; "Astonishing"; "Frantic"; + "Kindhearted"; "Limping"; "Roasted"; "Robust"; "Staking"; "Thundering"; + "Ultra"; "Unusual" } + # 0-6 for days of week + :local secret3 { "Belief"; "Button"; "Curtain"; "Edge"; "Jewel"; "String"; + "Whistle" } + + :local months { + "jan"; "feb"; "mar"; "apr"; "may"; "jun"; + "jul"; "aug"; "sep"; "oct"; "nov"; "dec" + } + :local monthtbl { + 0; 3; 3; 6; 1; 4; 6; 2; 5; 0; 3; 5 + } + + :local monthstr [ :pick $date 0 3 ]; + :local month; + :local day [ :pick $date 4 6 ]; + :local century [ :pick $date 7 9 ]; + :local year [ :pick $date 9 11 ]; + + # get numeric value for month + :for mindex from=0 to=[ :len $months ] do={ + :if ([ :pick $months $mindex ] = $monthstr) do={ + :set month $mindex; + } + } + + # calculate day of week + :local sum 0; + :set sum ($sum + (2 * (3 - ($century - (($century / 4) * 4))))); + :set sum ($sum + ($year / 4)); + :set sum ($sum + $year + $day); + :set sum ($sum + $month); + :set sum ($sum - (($sum / 7) * 7)); + + :local return ([ :pick $secret1 ($day - 1) ] . [ :pick $secret2 $month ] . [ :pick $secret3 $sum ]); + + :return $return; +} |