Improve overhaul error handling
This commit is contained in:
parent
d940af61fa
commit
1479d9f8fd
10 changed files with 58 additions and 10 deletions
|
|
@ -20,6 +20,9 @@ func handleCreateSend(msg messages.IPCMessage, cfg *config.Config, vault *vault.
|
||||||
|
|
||||||
ctx := context.WithValue(context.TODO(), bitwarden.AuthToken{}, token.AccessToken)
|
ctx := context.WithValue(context.TODO(), bitwarden.AuthToken{}, token.AccessToken)
|
||||||
url, err := bitwarden.CreateSend(ctx, cfg, vault, parsedMsg.Name, parsedMsg.Text)
|
url, err := bitwarden.CreateSend(ctx, cfg, vault, parsedMsg.Name, parsedMsg.Text)
|
||||||
|
if err != nil {
|
||||||
|
actionsLog.Warn(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
response, err = messages.IPCMessageFromPayload(messages.CreateSendResponse{
|
response, err = messages.IPCMessageFromPayload(messages.CreateSendResponse{
|
||||||
URL: url,
|
URL: url,
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,9 @@ func handleAddSSH(msg messages.IPCMessage, cfg *config.Config, vault *vault.Vaul
|
||||||
}
|
}
|
||||||
|
|
||||||
token, err := cfg.GetToken()
|
token, err := cfg.GetToken()
|
||||||
|
if err != nil {
|
||||||
|
actionsLog.Warn(err.Error())
|
||||||
|
}
|
||||||
ctx := context.WithValue(context.TODO(), bitwarden.AuthToken{}, token.AccessToken)
|
ctx := context.WithValue(context.TODO(), bitwarden.AuthToken{}, token.AccessToken)
|
||||||
ciph, err := bitwarden.PostCipher(ctx, cipher, cfg)
|
ciph, err := bitwarden.PostCipher(ctx, cipher, cfg)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|
|
||||||
|
|
@ -69,11 +69,17 @@ func CreateAuthResponse(ctx context.Context, authRequest AuthRequestData, keyrin
|
||||||
//}
|
//}
|
||||||
|
|
||||||
publicKey, err := base64.StdEncoding.DecodeString(authRequest.PublicKey)
|
publicKey, err := base64.StdEncoding.DecodeString(authRequest.PublicKey)
|
||||||
|
if err != nil {
|
||||||
|
return AuthRequestResponseData{}, err
|
||||||
|
}
|
||||||
requesterKey, err := crypto.MemoryAssymmetricEncryptionKeyFromBytes(publicKey)
|
requesterKey, err := crypto.MemoryAssymmetricEncryptionKeyFromBytes(publicKey)
|
||||||
|
if err != nil {
|
||||||
|
return AuthRequestResponseData{}, err
|
||||||
|
}
|
||||||
|
|
||||||
encryptedUserSymmetricKey, err := crypto.EncryptWithAsymmetric(userSymmetricKey, requesterKey)
|
encryptedUserSymmetricKey, err := crypto.EncryptWithAsymmetric(userSymmetricKey, requesterKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return AuthRequestResponseData{}, err
|
||||||
}
|
}
|
||||||
//encryptedMasterPasswordHash, err := crypto.EncryptWithAsymmetric(masterPasswordHash, requesterKey)
|
//encryptedMasterPasswordHash, err := crypto.EncryptWithAsymmetric(masterPasswordHash, requesterKey)
|
||||||
//if err != nil {
|
//if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,10 @@ func connectToWebsocket(ctx context.Context, vault *vault.Vault, cfg *config.Con
|
||||||
}
|
}
|
||||||
|
|
||||||
token, err := cfg.GetToken()
|
token, err := cfg.GetToken()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
var websocketURL = "wss://" + url.Host + url.Path + "/hub?access_token=" + token.AccessToken
|
var websocketURL = "wss://" + url.Host + url.Path + "/hub?access_token=" + token.AccessToken
|
||||||
c, _, err := websocket.DefaultDialer.Dial(websocketURL, nil)
|
c, _, err := websocket.DefaultDialer.Dial(websocketURL, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,11 @@ var getLoginCmd = &cobra.Command{
|
||||||
Short: "Gets a login in your vault",
|
Short: "Gets a login in your vault",
|
||||||
Long: `Gets a login in your vault.`,
|
Long: `Gets a login in your vault.`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
loginIfRequired()
|
err := loginIfRequired()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
uuid, _ := cmd.Flags().GetString("uuid")
|
uuid, _ := cmd.Flags().GetString("uuid")
|
||||||
name, _ := cmd.Flags().GetString("name")
|
name, _ := cmd.Flags().GetString("name")
|
||||||
|
|
@ -64,7 +68,11 @@ var listLoginsCmd = &cobra.Command{
|
||||||
Short: "Lists all logins in your vault",
|
Short: "Lists all logins in your vault",
|
||||||
Long: `Lists all logins in your vault.`,
|
Long: `Lists all logins in your vault.`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
loginIfRequired()
|
err := loginIfRequired()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
logins, err := ListLogins(commandClient)
|
logins, err := ListLogins(commandClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,12 @@ var sendCreateCmd = &cobra.Command{
|
||||||
Short: "Uploads a Bitwarden send.",
|
Short: "Uploads a Bitwarden send.",
|
||||||
Long: `Uploads a Bitwarden send.`,
|
Long: `Uploads a Bitwarden send.`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
loginIfRequired()
|
err := loginIfRequired()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
name, _ := cmd.Flags().GetString("name")
|
name, _ := cmd.Flags().GetString("name")
|
||||||
text, _ := cmd.Flags().GetString("text")
|
text, _ := cmd.Flags().GetString("text")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,9 @@ var pinentry = &cobra.Command{
|
||||||
case messages.PinentryApprovalRequest:
|
case messages.PinentryApprovalRequest:
|
||||||
err = conn.WriteMessage(messages.PinentryApprovalResponse{Approved: text == "true"})
|
err = conn.WriteMessage(messages.PinentryApprovalResponse{Approved: text == "true"})
|
||||||
}
|
}
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,10 @@ func setupSystemd() {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
file.WriteString(strings.ReplaceAll(SYSTEMD_SERVICE, "BINARY_PATH", path))
|
_, err = file.WriteString(strings.ReplaceAll(SYSTEMD_SERVICE, "BINARY_PATH", path))
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
file.Close()
|
file.Close()
|
||||||
|
|
||||||
userDirectory := os.Getenv("HOME")
|
userDirectory := os.Getenv("HOME")
|
||||||
|
|
|
||||||
17
cmd/ssh.go
17
cmd/ssh.go
|
|
@ -24,7 +24,11 @@ var sshAddCmd = &cobra.Command{
|
||||||
Long: `Runs a command with environment variables from your vault.
|
Long: `Runs a command with environment variables from your vault.
|
||||||
The variables are stored as a secure note. Consult the documentation for more information.`,
|
The variables are stored as a secure note. Consult the documentation for more information.`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
loginIfRequired()
|
err := loginIfRequired()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
name, _ := cmd.Flags().GetString("name")
|
name, _ := cmd.Flags().GetString("name")
|
||||||
copyToClipboard, _ := cmd.Flags().GetBool("clipboard")
|
copyToClipboard, _ := cmd.Flags().GetBool("clipboard")
|
||||||
|
|
@ -43,7 +47,10 @@ var sshAddCmd = &cobra.Command{
|
||||||
fmt.Println(response.Digest)
|
fmt.Println(response.Digest)
|
||||||
|
|
||||||
if copyToClipboard {
|
if copyToClipboard {
|
||||||
clipboard.WriteAll(string(response.Digest))
|
err := clipboard.WriteAll(string(response.Digest))
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case messages.ActionResponse:
|
case messages.ActionResponse:
|
||||||
|
|
@ -58,7 +65,11 @@ var listSSHCmd = &cobra.Command{
|
||||||
Short: "Lists all SSH keys in your vault",
|
Short: "Lists all SSH keys in your vault",
|
||||||
Long: `Lists all SSH keys in your vault.`,
|
Long: `Lists all SSH keys in your vault.`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
loginIfRequired()
|
err := loginIfRequired()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
result, err := commandClient.SendToAgent(messages.GetSSHKeysRequest{})
|
result, err := commandClient.SendToAgent(messages.GetSSHKeysRequest{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
6
main.go
6
main.go
|
|
@ -45,8 +45,10 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(os.Args) > 1 && (strings.Contains(os.Args[1], "com.8bit.bitwarden.json") || strings.Contains(os.Args[1], "chrome-extension://")) {
|
if len(os.Args) > 1 && (strings.Contains(os.Args[1], "com.8bit.bitwarden.json") || strings.Contains(os.Args[1], "chrome-extension://")) {
|
||||||
browserbiometrics.Main(&runtimeConfig)
|
err = browserbiometrics.Main(&runtimeConfig)
|
||||||
return
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd.Execute(runtimeConfig)
|
cmd.Execute(runtimeConfig)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue