aboutsummaryrefslogtreecommitdiff
path: root/cmd/easyca/main.go
diff options
context:
space:
mode:
authorJeremy Clerc <jclerc@google.com>2015-09-11 20:38:31 +0200
committerJeremy Clerc <jeremy@clerc.io>2015-09-11 20:38:31 +0200
commitbf2bb200a62a965b28ded738e1eb5a18c28b1d63 (patch)
tree78898581307252505e936ce631c9805838967616 /cmd/easyca/main.go
parente08d02983d7ae67f33b66145ea128d5fefaac065 (diff)
downloadeasypki-bf2bb200a62a965b28ded738e1eb5a18c28b1d63.tar.xz
move initpki, add revoke
moved initpki to easyca package add revoke command and method
Diffstat (limited to 'cmd/easyca/main.go')
-rw-r--r--cmd/easyca/main.go66
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",