diff options
author | Gibheer <gibheer@gmail.com> | 2015-02-17 21:44:10 +0100 |
---|---|---|
committer | Gibheer <gibheer@gmail.com> | 2015-02-17 21:44:10 +0100 |
commit | 470d21409b5f26d49fefd34d75b82197045d4811 (patch) | |
tree | f808e14913b6f73406e93c6250ae7826d8f2777c | |
parent | b022e8ab4ce93bc429e5052dd806ae03a068a676 (diff) |
add public key support
This adds all options to create and store a public key.
-rw-r--r-- | flags.go | 2 | ||||
-rw-r--r-- | main.go | 14 | ||||
-rw-r--r-- | private_key.go | 6 |
3 files changed, 14 insertions, 8 deletions
@@ -51,7 +51,7 @@ type ( // a container for the refined flags flagSet struct { - PrivateKey pkilib.PrivateKey + PrivateKey pki.PrivateKey Output io.WriteCloser // private key specific stuff @@ -50,10 +50,10 @@ func create_private_key() { err := fs.Parse(program_args()) if err != nil { crash_with_help(1, fmt.Sprintf("%s", err)) } - var pk pkilib.Pemmer + var pk pki.Pemmer switch fs.Flags.PrivateKeyGenerationFlags.Type { - case "ecdsa": pk, err = pkilib.NewPrivateKeyEcdsa(fs.Flags.PrivateKeyGenerationFlags.Curve) - case "rsa": pk, err = pkilib.NewPrivateKeyRsa(fs.Flags.PrivateKeyGenerationFlags.Size) + case "ecdsa": pk, err = pki.NewPrivateKeyEcdsa(fs.Flags.PrivateKeyGenerationFlags.Curve) + case "rsa": pk, err = pki.NewPrivateKeyRsa(fs.Flags.PrivateKeyGenerationFlags.Size) } if err != nil { crash_with_help(2, fmt.Sprintf("%s", err)) } marsh_pem, err := pk.MarshalPem() @@ -66,10 +66,16 @@ func create_private_key() { func create_public_key() { fs := NewFlags("create-public") fs.AddPrivateKey() + fs.AddOutput() err := fs.Parse(program_args()) if err != nil { crash_with_help(1, fmt.Sprintf("%s", err)) } - fmt.Println(fs.Flags.PrivateKey.Public()) + var pub_key pki.Pemmer + pub_key = fs.Flags.PrivateKey.Public() + marsh_pem, err := pub_key.MarshalPem() + if err != nil { crash_with_help(2, fmt.Sprintf("%s", err)) } + _, err = marsh_pem.WriteTo(fs.Flags.Output) + if err != nil { crash_with_help(2, fmt.Sprintf("%s", err)) } } // print the module help diff --git a/private_key.go b/private_key.go index 6b1b859..3e6aee3 100644 --- a/private_key.go +++ b/private_key.go @@ -16,16 +16,16 @@ var ( // Read the private key from the path and try to figure out which type of key it // might be. -func ReadPrivateKeyFile(path string) (pkilib.PrivateKey, error) { +func ReadPrivateKeyFile(path string) (pki.PrivateKey, error) { raw_pk, err := readSectionFromFile(path, TypeLabelECDSA) if err == nil { - pk, err := pkilib.LoadPrivateKeyEcdsa(raw_pk) + pk, err := pki.LoadPrivateKeyEcdsa(raw_pk) if err != nil { return nil, err } return pk, nil } raw_pk, err = readSectionFromFile(path, TypeLabelRSA) if err == nil { - pk, err := pkilib.LoadPrivateKeyRsa(raw_pk) + pk, err := pki.LoadPrivateKeyRsa(raw_pk) if err != nil { return nil, err } return pk, nil } |