Jelajahi Sumber

join via api - netmaker changes

Signed-off-by: Matthew R. Kasun <[email protected]>
Matthew R. Kasun 3 tahun lalu
induk
melakukan
cd3d3921cf
2 mengubah file dengan 11 tambahan dan 20 penghapusan
  1. 8 3
      netclient/functions/join.go
  2. 3 17
      tls/tls.go

+ 8 - 3
netclient/functions/join.go

@@ -3,6 +3,7 @@ package functions
 import (
 	"bytes"
 	"crypto/ed25519"
+	"crypto/rand"
 	"encoding/json"
 	"errors"
 	"fmt"
@@ -97,8 +98,12 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
 	// make sure name is appropriate, if not, give blank name
 	cfg.Node.Name = formatName(cfg.Node)
 
-	seed := tls.NewKey()
-	key, err := seed.Ed25519PrivateKey()
+	//seed := tls.NewKey()
+	//key, err := seed.Ed25519PrivateKey()
+	//if err != nil {
+	//	return err
+	//}
+	public, key, err := ed25519.GenerateKey(rand.Reader)
 	if err != nil {
 		return err
 	}
@@ -109,7 +114,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
 	}
 	request := config.JoinRequest{
 		Node: cfg.Node,
-		Key:  key.Public().(ed25519.PublicKey),
+		Key:  public,
 		CSR:  *csr,
 	}
 

+ 3 - 17
tls/tls.go

@@ -14,6 +14,7 @@ import (
 	"time"
 
 	"filippo.io/edwards25519"
+	"github.com/kr/pretty"
 	"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
 )
 
@@ -96,7 +97,7 @@ func NewCName(commonName string) pkix.Name {
 func NewCSR(key ed25519.PrivateKey, name pkix.Name) (*x509.CertificateRequest, error) {
 	derCertRequest, err := x509.CreateCertificateRequest(rand.Reader, &x509.CertificateRequest{
 		Subject:   name,
-		PublicKey: key.Public(),
+		PublicKey: key.Public().(ed25519.PublicKey),
 	}, key)
 	if err != nil {
 		return nil, err
@@ -151,6 +152,7 @@ func NewEndEntityCert(key ed25519.PrivateKey, req *x509.CertificateRequest, pare
 		SubjectKeyId:       req.RawSubject,
 		Issuer:             parent.Subject,
 	}
+	pretty.Println(req.PublicKey)
 	rootCa, err := x509.CreateCertificate(rand.Reader, template, parent, req.PublicKey, key)
 	if err != nil {
 		return nil, err
@@ -201,22 +203,6 @@ func SaveKey(path, name string, key ed25519.PrivateKey) error {
 	}); err != nil {
 		return fmt.Errorf("failed to write key to file %v", err)
 	}
-	pubOut, err := os.Create(name + ".pub")
-	if err != nil {
-		return fmt.Errorf("failed open key file for writing: %v", err)
-	}
-	defer pubOut.Close()
-	pubBytes, err := x509.MarshalPKIXPublicKey(key.Public())
-	if err != nil {
-		return fmt.Errorf("failedto marshal key %v ", err)
-	}
-	if err := pem.Encode(pubOut, &pem.Block{
-		Type:  "PUBLIC KEY",
-		Bytes: pubBytes,
-	}); err != nil {
-		return fmt.Errorf("failed to write key to file %v", err)
-	}
-
 	return nil
 }