mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-08 14:28:20 +00:00
generate random string fn
This commit is contained in:
@@ -38,8 +38,7 @@ const (
|
|||||||
SERVICE_TOKEN_IDENTIFIER = "service-token"
|
SERVICE_TOKEN_IDENTIFIER = "service-token"
|
||||||
UNIVERSAL_AUTH_TOKEN_IDENTIFIER = "universal-auth-token"
|
UNIVERSAL_AUTH_TOKEN_IDENTIFIER = "universal-auth-token"
|
||||||
|
|
||||||
// akhilmhdh: @depreciated remove in version v0.30
|
INFISICAL_BACKUP_SECRET = "infisical-backup-secrets" // akhilmhdh: @depreciated remove in version v0.30
|
||||||
INFISICAL_BACKUP_SECRET = "infisical-backup-secrets"
|
|
||||||
INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY = "infisical-backup-secret-encryption-key"
|
INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY = "infisical-backup-secret-encryption-key"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path"
|
"path"
|
||||||
@@ -25,6 +26,8 @@ type DecodedSymmetricEncryptionDetails = struct {
|
|||||||
Key []byte
|
Key []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||||
|
|
||||||
func GetBase64DecodedSymmetricEncryptionDetails(key string, cipher string, IV string, tag string) (DecodedSymmetricEncryptionDetails, error) {
|
func GetBase64DecodedSymmetricEncryptionDetails(key string, cipher string, IV string, tag string) (DecodedSymmetricEncryptionDetails, error) {
|
||||||
cipherx, err := base64.StdEncoding.DecodeString(cipher)
|
cipherx, err := base64.StdEncoding.DecodeString(cipher)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -287,3 +290,11 @@ func GetCmdFlagOrEnv(cmd *cobra.Command, flag, envName string) (string, error) {
|
|||||||
}
|
}
|
||||||
return value, nil
|
return value, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GenerateRandomString(length int) string {
|
||||||
|
b := make([]byte, length)
|
||||||
|
for i := range b {
|
||||||
|
b[i] = charset[rand.Intn(len(charset))]
|
||||||
|
}
|
||||||
|
return string(b)
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import (
|
|||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/manifoldco/promptui"
|
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
"github.com/zalando/go-keyring"
|
"github.com/zalando/go-keyring"
|
||||||
)
|
)
|
||||||
@@ -32,17 +31,9 @@ func SetValueInKeyring(key, value string) error {
|
|||||||
configFile, _ := GetConfigFile()
|
configFile, _ := GetConfigFile()
|
||||||
|
|
||||||
if configFile.VaultBackendPassphrase == "" {
|
if configFile.VaultBackendPassphrase == "" {
|
||||||
PrintWarning("System keyring could not be used, falling back to `file` vault for sensitive data storage.")
|
encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(GenerateRandomString(10))) // generate random passphrase
|
||||||
passphrasePrompt := promptui.Prompt{
|
|
||||||
Label: "Enter the passphrase to use for keyring encryption",
|
|
||||||
}
|
|
||||||
passphrase, err := passphrasePrompt.Run()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase))
|
|
||||||
configFile.VaultBackendPassphrase = encodedPassphrase
|
configFile.VaultBackendPassphrase = encodedPassphrase
|
||||||
|
configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE
|
||||||
err = WriteConfigFile(&configFile)
|
err = WriteConfigFile(&configFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -64,13 +55,7 @@ func GetValueInKeyring(key string) (string, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
PrintErrorAndExit(1, err, "Unable to get current vault. Tip: run [infisical reset] then try again")
|
PrintErrorAndExit(1, err, "Unable to get current vault. Tip: run [infisical reset] then try again")
|
||||||
}
|
}
|
||||||
|
return keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key)
|
||||||
value, err := keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
value, err = keyring.Get(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key)
|
|
||||||
}
|
|
||||||
return value, err
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,11 +65,5 @@ func DeleteValueInKeyring(key string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key)
|
return keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key)
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
err = keyring.Delete(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key)
|
|
||||||
}
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,8 +30,5 @@ description: "Change the vault type in Infisical"
|
|||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
To safeguard your login details when using the CLI, Infisical places them in a system vault or an encrypted text file, protected by a passphrase that only the user knows.
|
To safeguard your login details when using the CLI, Infisical attempts to store them in a system keyring. If a system keyring cannot be found on your machine, the data is stored in a config file.
|
||||||
|
|
||||||
<Tip>To avoid constantly entering your passphrase when using the `file` vault type, use the `infisical vault set file --passphrase <your-passphrase>` CLI command to specify your password once.</Tip>
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user