diff options
author | Christian Hesse <mail@eworm.de> | 2018-10-10 20:45:00 +0200 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2018-10-10 20:45:00 +0200 |
commit | 92bb1d107c4fe9568e8260f5921b50acc3d06a2e (patch) | |
tree | aac32e8d14b80db097dea31d304c832fb783c340 /daily-psk | |
parent | ba076db93e9bca8b4412b1ed39d4213db49a8773 (diff) |
daily-psk: move function GeneratePSK from global-functions
Diffstat (limited to 'daily-psk')
-rw-r--r-- | daily-psk | 42 |
1 files changed, 41 insertions, 1 deletions
@@ -6,7 +6,47 @@ :global "daily-psk-match-comment"; -:global "GeneratePSK"; +# return pseudo-random string for PSK +:local GeneratePSK do={ + :local date $1; + + :global "daily-psk-secrets"; + + :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 [ :pick $"daily-psk-secrets" 0 ] ($day - 1) ] . \ + [ :pick [ :pick $"daily-psk-secrets" 1 ] $month ] . \ + [ :pick [ :pick $"daily-psk-secrets" 2 ] $sum ]); + + :return $return; +} # check mail server :if ([ / tool netwatch get [ find where comment=[ / tool e-mail get address ] ] status ] != "up" ) do={ |