github.com/maenmax/kairep@v0.0.0-20210218001208-55bf3df36788/src/fernet-go/cmd/fernet-sign/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "log" 7 "os" 8 9 "github.com/fernet/fernet-go" 10 ) 11 12 const Usage = `Usage: fernet-sign ENV 13 14 fernet-sign encrypts and signs its input and prints the resulting token. 15 It uses the key in environment variable ENV.` 16 17 func main() { 18 log.SetFlags(0) 19 log.SetPrefix("fernet: ") 20 21 if len(os.Args) != 2 { 22 fmt.Fprintln(os.Stderr, Usage) 23 os.Exit(2) 24 } 25 26 key, err := fernet.DecodeKey(os.Getenv(os.Args[1])) 27 if err != nil { 28 log.Fatalln(err) 29 } 30 31 b, err := ioutil.ReadAll(os.Stdin) 32 if err != nil { 33 log.Fatalln(err) 34 } 35 36 t, err := fernet.EncryptAndSign(b, key) 37 if err != nil { 38 log.Fatalln(err) 39 } 40 41 _, err = os.Stdout.Write(append(t, '\n')) 42 if err != nil { 43 log.Fatalln(err) 44 } 45 }