summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--generate_cert.go21
1 files changed, 9 insertions, 12 deletions
diff --git a/generate_cert.go b/generate_cert.go
index deb7da8..83216cf 100644
--- a/generate_cert.go
+++ b/generate_cert.go
@@ -8,6 +8,7 @@
package main
import (
+ "crypto"
"crypto/ecdsa"
"crypto/elliptic"
"crypto/rand"
@@ -16,7 +17,6 @@ import (
"crypto/x509/pkix"
"encoding/pem"
"flag"
- "fmt"
"log"
"math/big"
"net"
@@ -34,26 +34,25 @@ var (
ecdsaCurve = flag.String("ecdsa-curve", "", "ECDSA curve to use to generate a key. Valid values are P224, P256, P384, P521")
)
-func publicKey(priv interface{}) interface{} {
+func publicKey(priv crypto.PrivateKey) crypto.PublicKey {
switch k := priv.(type) {
case *rsa.PrivateKey:
- return &k.PublicKey
+ return k.Public()
case *ecdsa.PrivateKey:
- return &k.PublicKey
+ return k.Public()
default:
return nil
}
}
-func pemBlockForKey(priv interface{}) *pem.Block {
+func pemBlockForKey(priv crypto.PrivateKey) *pem.Block {
switch k := priv.(type) {
case *rsa.PrivateKey:
return &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(k)}
case *ecdsa.PrivateKey:
b, err := x509.MarshalECPrivateKey(k)
if err != nil {
- fmt.Fprintf(os.Stderr, "Unable to marshal ECDSA private key: %v", err)
- os.Exit(2)
+ log.Fatalf("Unable to marshal ECDSA private key: %v", err)
}
return &pem.Block{Type: "EC PRIVATE KEY", Bytes: b}
default:
@@ -68,7 +67,7 @@ func main() {
log.Fatalf("Missing required --host parameter")
}
- var priv interface{}
+ var priv crypto.PrivateKey
var err error
switch *ecdsaCurve {
case "":
@@ -82,8 +81,7 @@ func main() {
case "P521":
priv, err = ecdsa.GenerateKey(elliptic.P521(), rand.Reader)
default:
- fmt.Fprintf(os.Stderr, "Unrecognized elliptic curve: %q", *ecdsaCurve)
- os.Exit(1)
+ log.Fatalf("Unrecognized elliptic curve: %q", *ecdsaCurve)
}
if err != nil {
log.Fatalf("failed to generate private key: %s", err)
@@ -95,8 +93,7 @@ func main() {
} else {
notBefore, err = time.Parse("Jan 2 15:04:05 2006", *validFrom)
if err != nil {
- fmt.Fprintf(os.Stderr, "Failed to parse creation date: %s\n", err)
- os.Exit(1)
+ log.Fatalf("Failed to parse creation date: %s\n", err)
}
}