Files
rsa-file-encryption/commands/generate-keypair.go
Ron Rise c535e69ad4 Added test for crypt (#1)
* Added test for crypt

* Added test for crypt

* Added test for crypt

* Added test for crypt

* Added test for crypt
2024-05-01 20:09:49 -04:00

41 lines
815 B
Go

package commands
import (
"fmt"
"github.com/siteworxpro/rsa-file-encryption/crypt"
"github.com/siteworxpro/rsa-file-encryption/printer"
"os"
)
func GenerateKeypair(bitSize uint, path string, overwrite bool) error {
if _, err := os.Stat(path); err == nil && !overwrite {
return fmt.Errorf("key file already exists - use another filename or -force (-F) to overwrite")
}
p := printer.NewPrinter()
c := make(chan bool)
go p.LogSpinner("Generating RSA key...", c)
keyPem, pubPem, err := crypt.GenerateKeyPair(int(bitSize))
c <- true
p.LogInfo("Writing private key...")
err = os.WriteFile(path, keyPem, 0600)
if err != nil {
return err
}
p.LogInfo("Writing public key...")
err = os.WriteFile(path+".pub", pubPem, 0644)
if err != nil {
return err
}
p.LogSuccess("Done!")
return nil
}