grim/josetool

add support for outputting the keys to files
draft
2017-02-07, Gary Kramlich
c5f0ccd2dd62
add support for outputting the keys to files
package main
import (
"fmt"
"crypto/rand"
"crypto/rsa"
)
var (
rsaCmd = app.Command("rsa", "generate an rsa key")
rsaAlgorithm = rsaCmd.Flag("algorithm", "the algorithm to use").Short('a').Default("RS256").Enum("RS256", "RS384", "RS512")
rsaBits = rsaCmd.Arg("bits", "the number of bits for the key").Default("2048").Int()
rsaKid = rsaCmd.Flag("key-id", "the key id to use").Short('i').String()
rsaUse = rsaCmd.Flag("use", "how this key will be used").Short('u').Default("sig").Enum("sig", "enc")
rsaFilename = rsaCmd.Flag("filename", "the base filename to output the key to").Short('f').Default("-").String()
)
func genRSA() error {
fmt.Printf("generating RSA key, this may take some time...\n")
priv, err := rsa.GenerateKey(rand.Reader, *rsaBits)
if err != nil {
return err
}
return output(
priv,
priv.Public(),
*rsaFilename,
*rsaKid,
*rsaAlgorithm,
*rsaUse,
)
}