aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGibheer <gibheer@gmail.com>2015-01-02 11:40:32 +0100
committerGibheer <gibheer@gmail.com>2015-01-02 11:40:32 +0100
commitdac4b27f74abbd10bb27159cdb970db89c5d2406 (patch)
treeff85194de144b906d32c7aefd83691ebbb16b666
parentd6088d5f990afd9fbd4ab25b5a34a5a9f9476ba0 (diff)
move private key loading to private_key file
-rw-r--r--main.go46
-rw-r--r--private_key.go45
2 files changed, 45 insertions, 46 deletions
diff --git a/main.go b/main.go
index b028881..bbb7caa 100644
--- a/main.go
+++ b/main.go
@@ -1,11 +1,8 @@
package main
import (
- "crypto/x509"
- "encoding/pem"
"fmt"
"io"
- "io/ioutil"
"os"
"path/filepath"
)
@@ -41,49 +38,6 @@ func info_on_file() {}
// sign a certificate request to create a new certificate
func sign_request() {}
-// load the private key stored at `path`
-func load_private_key(path string) PrivateKey {
- if path == "" {
- crash_with_help(2, "No path to private key supplied!")
- }
-
- file, err := os.Open(path)
- if err != nil {
- crash_with_help(3, fmt.Sprintf("Error when opening private key: %s", err))
- }
- defer file.Close()
-
- data, err := ioutil.ReadAll(file)
- if err != nil {
- crash_with_help(3, fmt.Sprintf("Error when reading private key: %s", err))
- }
-
- block, _ := pem.Decode(data)
- if block.Type == TypeLabelRSA {
- return load_private_key_rsa(block)
- } else if block.Type == TypeLabelECDSA {
- return load_private_key_ecdsa(block)
- } else {
- crash_with_help(2, "No valid private key file! Only RSA and ECDSA keys are allowed!")
- return nil
- }
-}
-
-func load_private_key_rsa(block *pem.Block) PrivateKey {
- key, err := x509.ParsePKCS1PrivateKey(block.Bytes)
- if err != nil {
- crash_with_help(3, fmt.Sprintf("Error parsing private key: %s", err))
- }
- return key
-}
-func load_private_key_ecdsa(block *pem.Block) PrivateKey {
- key, err := x509.ParseECPrivateKey(block.Bytes)
- if err != nil {
- crash_with_help(3, fmt.Sprintf("Error parsing private key: %s", err))
- }
- return key
-}
-
// open stream for given path
func open_output_stream(path string) (io.WriteCloser, error) {
if path == "STDOUT" {
diff --git a/private_key.go b/private_key.go
index 06534ef..ae5b90a 100644
--- a/private_key.go
+++ b/private_key.go
@@ -10,6 +10,7 @@ import (
"flag"
"fmt"
"io"
+ "io/ioutil"
"os"
)
@@ -96,4 +97,48 @@ func parse_create_flags() CreateFlags {
return flags
}
+// load the private key stored at `path`
+func load_private_key(path string) PrivateKey {
+ if path == "" {
+ crash_with_help(2, "No path to private key supplied!")
+ }
+ file, err := os.Open(path)
+ if err != nil {
+ crash_with_help(3, fmt.Sprintf("Error when opening private key: %s", err))
+ }
+ defer file.Close()
+
+ data, err := ioutil.ReadAll(file)
+ if err != nil {
+ crash_with_help(3, fmt.Sprintf("Error when reading private key: %s", err))
+ }
+
+ block, _ := pem.Decode(data)
+ if block.Type == TypeLabelRSA {
+ return load_private_key_rsa(block)
+ } else if block.Type == TypeLabelECDSA {
+ return load_private_key_ecdsa(block)
+ } else {
+ crash_with_help(2, "No valid private key file! Only RSA and ECDSA keys are allowed!")
+ return nil
+ }
+}
+
+// parse rsa private key
+func load_private_key_rsa(block *pem.Block) PrivateKey {
+ key, err := x509.ParsePKCS1PrivateKey(block.Bytes)
+ if err != nil {
+ crash_with_help(3, fmt.Sprintf("Error parsing private key: %s", err))
+ }
+ return key
+}
+
+// parse ecdsa private key
+func load_private_key_ecdsa(block *pem.Block) PrivateKey {
+ key, err := x509.ParseECPrivateKey(block.Bytes)
+ if err != nil {
+ crash_with_help(3, fmt.Sprintf("Error parsing private key: %s", err))
+ }
+ return key
+}