aboutsummaryrefslogtreecommitdiffstats
path: root/daily-psk
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2018-10-10 20:45:00 +0200
committerGravatar Christian Hesse <mail@eworm.de>2018-10-10 20:45:00 +0200
commit92bb1d107c4fe9568e8260f5921b50acc3d06a2e (patch)
treeaac32e8d14b80db097dea31d304c832fb783c340 /daily-psk
parentba076db93e9bca8b4412b1ed39d4213db49a8773 (diff)
daily-psk: move function GeneratePSK from global-functions
Diffstat (limited to 'daily-psk')
-rw-r--r--daily-psk42
1 files changed, 41 insertions, 1 deletions
diff --git a/daily-psk b/daily-psk
index 549b743..cc1597d 100644
--- a/daily-psk
+++ b/daily-psk
@@ -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={