From 16eb14db9f9b228ef88bcf1beb09cf823256dac1 Mon Sep 17 00:00:00 2001 From: Gibheer Date: Sun, 15 Feb 2015 01:34:25 +0100 Subject: redesign cli This is a major rebuilding of the CLI. The library part is split out into pkilib and the cli handles only the communication with the user, I/O and the library. The API will still look the same, but the code should be much better to grasp. Instead of repeating everything, more will be grouped together and reused. --- public_key.go | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 public_key.go (limited to 'public_key.go') diff --git a/public_key.go b/public_key.go deleted file mode 100644 index cbafc49..0000000 --- a/public_key.go +++ /dev/null @@ -1,50 +0,0 @@ -package main - -// create a public key from a private key - -import ( - "crypto/x509" - "encoding/pem" - "flag" - "fmt" - "io" - "os" -) - -type ( - PublicKeyFlags struct { - PrivateKeyPath string - Output string - - output_stream io.WriteCloser // the actual stream to the output - } -) - -func create_public_key() { - var err error - flags := parse_public_key_flags() - flags.output_stream, err = open_output_stream(flags.Output) - if err != nil { - crash_with_help(2, fmt.Sprintf("Error when creating file %s: %s", flags.Output, err)) - } - defer flags.output_stream.Close() - - priv_key := load_private_key(flags.PrivateKeyPath) - marshal, err := x509.MarshalPKIXPublicKey(priv_key.Public()) - if err != nil { - crash_with_help(2, fmt.Sprintf("Problems marshalling the public key: %s", err)) - } - - block := &pem.Block{Type: TypeLabelPubKey, Bytes: marshal} - pem.Encode(flags.output_stream, block) -} - -func parse_public_key_flags() PublicKeyFlags { - flags := PublicKeyFlags{} - fs := flag.NewFlagSet("create-public", flag.ExitOnError) - fs.StringVar(&flags.PrivateKeyPath, "private-key", "", "path to the private key file") - fs.StringVar(&flags.Output, "output", "STDOUT", "path where the generated public key should be stored") - fs.Parse(os.Args[2:]) - - return flags -} -- cgit v1.2.3-70-g09d2