aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGibheer <gibheer@gmail.com>2015-02-17 21:44:10 +0100
committerGibheer <gibheer@gmail.com>2015-02-17 21:44:10 +0100
commit470d21409b5f26d49fefd34d75b82197045d4811 (patch)
treef808e14913b6f73406e93c6250ae7826d8f2777c
parentb022e8ab4ce93bc429e5052dd806ae03a068a676 (diff)
add public key support
This adds all options to create and store a public key.
-rw-r--r--flags.go2
-rw-r--r--main.go14
-rw-r--r--private_key.go6
3 files changed, 14 insertions, 8 deletions
diff --git a/flags.go b/flags.go
index 29ece80..157dd04 100644
--- a/flags.go
+++ b/flags.go
@@ -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
diff --git a/main.go b/main.go
index 56128ff..524f498 100644
--- a/main.go
+++ b/main.go
@@ -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
}