diff --git a/cmd/lavender/serve.go b/cmd/lavender/serve.go index 8ae7075..23fba2b 100644 --- a/cmd/lavender/serve.go +++ b/cmd/lavender/serve.go @@ -3,7 +3,9 @@ package main import ( "context" "crypto/rand" + "crypto/x509" "encoding/json" + "errors" "flag" "github.com/1f349/lavender/server" "github.com/1f349/lavender/server/pages" @@ -71,6 +73,10 @@ func normalLoad(startUp server.Conf, wd string) { if err != nil { log.Fatal("[Lavender] Failed to load or create MJWT signer:", err) } + err = os.WriteFile("lavender.public.key", x509.MarshalPKCS1PublicKey(mSign.PublicKey()), 0600) + if err != nil && !errors.Is(err, os.ErrExist) { + log.Fatal("[Lavender] Failed to save MJWT public key:", err) + } if err := pages.LoadPages(wd); err != nil { log.Fatal("[Lavender] Failed to load page templates:", err) diff --git a/go.mod b/go.mod index 529d0e3..0a3da46 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/1f349/overlapfs v0.0.1 github.com/1f349/violet v0.0.10 github.com/MrMelon54/exit-reload v0.0.1 - github.com/MrMelon54/mjwt v0.1.1 + github.com/MrMelon54/mjwt v0.1.2 github.com/golang-jwt/jwt/v4 v4.5.0 github.com/google/subcommands v1.2.0 github.com/google/uuid v1.3.1 diff --git a/go.sum b/go.sum index 0665f19..6428c3e 100644 --- a/go.sum +++ b/go.sum @@ -9,6 +9,8 @@ github.com/MrMelon54/exit-reload v0.0.1 h1:sxHa59tNEQMcikwuX2+93lw6Vi1+R7oCRF8a0 github.com/MrMelon54/exit-reload v0.0.1/go.mod h1:PLiSfmUzwdpTTQP3BBfUPhkqPwaIZjx0DuXBnM76Bug= github.com/MrMelon54/mjwt v0.1.1 h1:m+aTpxbhQCrOPKHN170DQMFR5r938LkviU38unob5Jw= github.com/MrMelon54/mjwt v0.1.1/go.mod h1:oYrDBWK09Hju98xb+bRQ0wy+RuAzacxYvKYOZchR2Tk= +github.com/MrMelon54/mjwt v0.1.2 h1:uYjEWybACH/Kt1lFyfqFaU1QX/Kh1Gn72jtxoxaG1F0= +github.com/MrMelon54/mjwt v0.1.2/go.mod h1:oYrDBWK09Hju98xb+bRQ0wy+RuAzacxYvKYOZchR2Tk= github.com/MrMelon54/rescheduler v0.0.2 h1:efrRwr0BYlkaXFucZDjQqRyIawZiMEAnzjea46Bs9Oc= github.com/MrMelon54/rescheduler v0.0.2/go.mod h1:OQDFtZHdS4/qA/r7rtJUQA22/hbpnZ9MGQCXOPjhC6w= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=