From 05881db3ed29bc045261dff59ed5326a5a25f4ad Mon Sep 17 00:00:00 2001 From: devhindo Date: Sun, 28 Jan 2024 22:57:33 +0200 Subject: [PATCH 1/2] fix: took branch from main instead of future --- src/cli/lock/key.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/cli/lock/key.go b/src/cli/lock/key.go index a0415eb..a37615c 100644 --- a/src/cli/lock/key.go +++ b/src/cli/lock/key.go @@ -21,19 +21,19 @@ func GenerateLicenseKey() (string, error) { func WriteLicenseKeyToFile(licenseKey string) error { homeDir, err := os.UserHomeDir() if err != nil { - return fmt.Errorf("Error getting user home directory: %v", err) + return fmt.Errorf("error getting user home directory: %v", err) } licenseFilePath := filepath.Join(homeDir, ".tempxcli") licenseFile, err := os.Create(licenseFilePath) if err != nil { - return fmt.Errorf("Error creating license file: %v", err) + return fmt.Errorf("error creating license file: %v", err) } defer licenseFile.Close() _, err = licenseFile.WriteString(licenseKey) if err != nil { - return fmt.Errorf("Error writing license key to file: %v", err) + return fmt.Errorf("error writing license key to file: %v", err) } return nil @@ -42,19 +42,19 @@ func WriteLicenseKeyToFile(licenseKey string) error { func ReadLicenseKeyFromFile() (string, error) { homeDir, err := os.UserHomeDir() if err != nil { - return "", fmt.Errorf("Error getting user home directory: %v", err) + return "", fmt.Errorf("error getting user home directory: %v", err) } licenseFilePath := filepath.Join(homeDir, ".tempxcli") licenseFile, err := os.Open(licenseFilePath) if err != nil { - return "", fmt.Errorf("Error opening license file: %v", err) + return "", fmt.Errorf("error opening license file: %v", err) } defer licenseFile.Close() licenseFileBytes, err := io.ReadAll(licenseFile) if err != nil { - return "", fmt.Errorf("Error reading license file: %v", err) + return "", fmt.Errorf("error reading license file: %v", err) } licenseKey := string(licenseFileBytes) @@ -64,13 +64,13 @@ func ReadLicenseKeyFromFile() (string, error) { func ClearLicenseFile() error { homeDir, err := os.UserHomeDir() if err != nil { - return fmt.Errorf("Error getting user home directory: %v", err) + return fmt.Errorf("error getting user home directory: %v", err) } licenseFilePath := filepath.Join(homeDir, ".tempxcli") err = os.Remove(licenseFilePath) if err != nil { - return fmt.Errorf("Error deleting license file: %v", err) + return fmt.Errorf("error deleting license file: %v", err) } return nil From 495f6ac0ed72bcfe9431e9d29fafc7cae2deabc1 Mon Sep 17 00:00:00 2001 From: devhindo Date: Sun, 28 Jan 2024 23:30:41 +0200 Subject: [PATCH 2/2] added encrypt functions --- src/cli/lock/encrypt.go | 62 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/cli/lock/encrypt.go diff --git a/src/cli/lock/encrypt.go b/src/cli/lock/encrypt.go new file mode 100644 index 0000000..900e564 --- /dev/null +++ b/src/cli/lock/encrypt.go @@ -0,0 +1,62 @@ +package lock + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "encoding/hex" + "io" + "crypto/sha256" +) + +func generateKey() []byte { + key := make([]byte, 32) + if _, err := io.ReadFull(rand.Reader, key); err != nil { + panic(err) + } + return key +} + +func encryptString(s string, key []byte) string { + block, err := aes.NewCipher(key) + if err != nil { + panic(err) + } + + ciphertext := make([]byte, aes.BlockSize+len(s)) + iv := ciphertext[:aes.BlockSize] + if _, err := io.ReadFull(rand.Reader, iv); err != nil { + panic(err) + } + + stream := cipher.NewCFBEncrypter(block, iv) + stream.XORKeyStream(ciphertext[aes.BlockSize:], []byte(s)) + + return hex.EncodeToString(ciphertext) +} + +func decryptString(s string, key []byte) string { + ciphertext, _ := hex.DecodeString(s) + + block, err := aes.NewCipher(key) + if err != nil { + panic(err) + } + + if len(ciphertext) < aes.BlockSize { + panic("ciphertext too short") + } + iv := ciphertext[:aes.BlockSize] + ciphertext = ciphertext[aes.BlockSize:] + + stream := cipher.NewCFBDecrypter(block, iv) + stream.XORKeyStream(ciphertext, ciphertext) + + return string(ciphertext) +} + +func EncryptLicense(l string) (string,error) { // using sha256 + hash := sha256.Sum256([]byte(l)) + encyptedLicense := hex.EncodeToString(hash[:]) + return encyptedLicense, nil +} \ No newline at end of file