Download this file
| 1 | // Command aviso-key prints one VAPID private key, and nothing else, so |
| 2 | // it can be captured straight into a secret store: |
| 3 | // |
| 4 | // APP_VAPID_PRIVATE_KEY="$(go run amadan.net/rastrillo/aviso/cmd/aviso-key)" |
| 5 | // |
| 6 | // The public key is derived by aviso.New; there is no second value to |
| 7 | // keep. Run it once per app: rotating the key means every browser |
| 8 | // re-enrols on its next visit. |
| 9 | package main |
| 10 | |
| 11 | import ( |
| 12 | "fmt" |
| 13 | "io" |
| 14 | "os" |
| 15 | |
| 16 | "amadan.net/rastrillo/aviso" |
| 17 | ) |
| 18 | |
| 19 | func run(w io.Writer) error { |
| 20 | k, err := aviso.GenerateKey() |
| 21 | if err != nil { |
| 22 | return err |
| 23 | } |
| 24 | _, err = fmt.Fprintln(w, k) |
| 25 | return err |
| 26 | } |
| 27 | |
| 28 | func main() { |
| 29 | if err := run(os.Stdout); err != nil { |
| 30 | fmt.Fprintln(os.Stderr, "aviso-key:", err) |
| 31 | os.Exit(1) |
| 32 | } |
| 33 | } |
| 34 | |