diff options
| author | Jeremy Clerc <jclerc@google.com> | 2015-09-11 20:38:31 +0200 |
|---|---|---|
| committer | Jeremy Clerc <jeremy@clerc.io> | 2015-09-11 20:38:31 +0200 |
| commit | bf2bb200a62a965b28ded738e1eb5a18c28b1d63 (patch) | |
| tree | 78898581307252505e936ce631c9805838967616 /cmd | |
| parent | e08d02983d7ae67f33b66145ea128d5fefaac065 (diff) | |
| download | easypki-bf2bb200a62a965b28ded738e1eb5a18c28b1d63.tar.xz | |
move initpki, add revoke
moved initpki to easyca package
add revoke command and method
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/easyca/main.go | 66 |
1 files changed, 26 insertions, 40 deletions
diff --git a/cmd/easyca/main.go b/cmd/easyca/main.go index e4a5ff7..2991a70 100644 --- a/cmd/easyca/main.go +++ b/cmd/easyca/main.go @@ -3,7 +3,6 @@ package main import ( "crypto/x509" "crypto/x509/pkix" - "fmt" "log" "net" "os" @@ -20,43 +19,10 @@ import ( func initPki(c *cli.Context) { log.Print("generating new pki structure") - pkiroot := filepath.Join(c.GlobalString("root")) - - for _, dir := range []string{"private", "issued"} { - err := os.Mkdir(filepath.Join(pkiroot, dir), 0755) - if err != nil { - log.Fatalf("creating dir %v: %v", dir, err) - } - log.Printf("created %v directory", dir) - } - - serial, err := os.Create(filepath.Join(pkiroot, "serial")) - if err != nil { - log.Fatalf("create serial: %v", err) - } - defer serial.Close() - n, err := fmt.Fprintln(serial, "01") - if err != nil { - log.Fatalf("write serial: %v", err) - } - if n == 0 { - log.Fatal("write serial, written 0 bytes") - } - log.Print("created serial") - - crlnumber, err := os.Create(filepath.Join(pkiroot, "crlnumber")) - if err != nil { - log.Fatalf("create crlnumber: %v", err) - } - defer crlnumber.Close() - n, err = fmt.Fprintln(crlnumber, "01") + err := easyca.GeneratePKIStructure(filepath.Join(c.GlobalString("root"))) if err != nil { - log.Fatalf("write crlnumber: %v", err) + log.Fatalf("generate pki structure: %v", err) } - if n == 0 { - log.Fatal("write crlnumber, written 0 bytes") - } - log.Print("created crlnumber") } func createBundle(c *cli.Context) { @@ -115,7 +81,21 @@ func createBundle(c *cli.Context) { if err != nil { log.Fatal(err) } - +} +func revoke(c *cli.Context) { + if !c.Args().Present() { + cli.ShowSubcommandHelp(c) + log.Fatalf("Usage: %v path/to/cert.crt", c.Command.FullName()) + } + crtPath := c.Args().First() + crt, err := easyca.GetCertificate(crtPath) + if err != nil { + log.Fatalf("get certificate (%v): %v", crtPath, err) + } + err = easyca.RevokeSerial(c.GlobalString("root"), crt.SerialNumber) + if err != nil { + log.Fatalf("revoke serial %X: %v", crt.SerialNumber, err) + } } func parseArgs() { @@ -136,9 +116,15 @@ func parseArgs() { } app.Commands = []cli.Command{ { - Name: "init", - Usage: "create directory structure", - Action: initPki, + Name: "init", + Description: "create directory structure", + Action: initPki, + }, + { + Name: "revoke", + Usage: "revoke path/to/cert", + Description: "revoke certificate", + Action: revoke, }, { Name: "create", |
