diff --git a/pkg/keychain/keychain.go b/pkg/keychain/keychain.go
index 2aeb82dd..f5e9fc2a 100644
--- a/pkg/keychain/keychain.go
+++ b/pkg/keychain/keychain.go
@@ -72,11 +72,6 @@ func NewKeychain(s *settings.Settings, keychainName string) (*Keychain, error) {
return newKeychain(helper, hostURL(keychainName)), nil
}
-// hostURL uniquely identifies the app's keychain items within the system keychain.
-func hostURL(keychainName string) string {
- return fmt.Sprintf("protonmail/%v/users", keychainName)
-}
-
func newKeychain(helper credentials.Helper, url string) *Keychain {
return &Keychain{
helper: helper,
diff --git a/pkg/keychain/keychain_darwin.go b/pkg/keychain/keychain_darwin.go
new file mode 100644
index 00000000..64e325d7
--- /dev/null
+++ b/pkg/keychain/keychain_darwin.go
@@ -0,0 +1,30 @@
+// Copyright (c) 2021 Proton Technologies AG
+//
+// This file is part of ProtonMail Bridge.
+//
+// ProtonMail Bridge is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// ProtonMail Bridge is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with ProtonMail Bridge. If not, see .
+
+// +build darwin
+
+package keychain
+
+import (
+ "fmt"
+ "strings"
+)
+
+// hostURL uniquely identifies the app's keychain items within the system keychain.
+func hostURL(keychainName string) string {
+ return fmt.Sprintf("ProtonMail%vService", strings.Title(keychainName))
+}
diff --git a/pkg/keychain/keychain_default.go b/pkg/keychain/keychain_default.go
index 0272ed1e..c7c30220 100644
--- a/pkg/keychain/keychain_default.go
+++ b/pkg/keychain/keychain_default.go
@@ -15,34 +15,13 @@
// You should have received a copy of the GNU General Public License
// along with ProtonMail Bridge. If not, see .
-// Package keychain implements a native secure password store for each platform.
+// +build !darwin
+
package keychain
-import (
- "github.com/docker/docker-credential-helpers/credentials"
-)
+import "fmt"
-// NewMissingKeychain returns a new keychain that always returns an error.
-func NewMissingKeychain() *Keychain {
- return newKeychain(&missingHelper{}, "")
-}
-
-// missingHelper is a helper which is used when no other helper is available.
-// It always returns ErrNoKeychain.
-type missingHelper struct{}
-
-func (h *missingHelper) Add(*credentials.Credentials) error {
- return ErrNoKeychain
-}
-
-func (h *missingHelper) Delete(string) error {
- return ErrNoKeychain
-}
-
-func (h *missingHelper) Get(string) (string, string, error) {
- return "", "", ErrNoKeychain
-}
-
-func (h *missingHelper) List() (map[string]string, error) {
- return nil, ErrNoKeychain
+// hostURL uniquely identifies the app's keychain items within the system keychain.
+func hostURL(keychainName string) string {
+ return fmt.Sprintf("protonmail/%v/users", keychainName)
}
diff --git a/pkg/keychain/keychain_missing.go b/pkg/keychain/keychain_missing.go
new file mode 100644
index 00000000..ab7e7dda
--- /dev/null
+++ b/pkg/keychain/keychain_missing.go
@@ -0,0 +1,47 @@
+// Copyright (c) 2021 Proton Technologies AG
+//
+// This file is part of ProtonMail Bridge.
+//
+// ProtonMail Bridge is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// ProtonMail Bridge is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with ProtonMail Bridge. If not, see .
+
+package keychain
+
+import (
+ "github.com/docker/docker-credential-helpers/credentials"
+)
+
+// NewMissingKeychain returns a new keychain that always returns an error.
+func NewMissingKeychain() *Keychain {
+ return newKeychain(&missingHelper{}, "")
+}
+
+// missingHelper is a helper which is used when no other helper is available.
+// It always returns ErrNoKeychain.
+type missingHelper struct{}
+
+func (h *missingHelper) Add(*credentials.Credentials) error {
+ return ErrNoKeychain
+}
+
+func (h *missingHelper) Delete(string) error {
+ return ErrNoKeychain
+}
+
+func (h *missingHelper) Get(string) (string, string, error) {
+ return "", "", ErrNoKeychain
+}
+
+func (h *missingHelper) List() (map[string]string, error) {
+ return nil, ErrNoKeychain
+}
diff --git a/unreleased.md b/unreleased.md
index 752114de..0deef91e 100644
--- a/unreleased.md
+++ b/unreleased.md
@@ -12,3 +12,4 @@ Changelog [format](http://keepachangelog.com/en/1.0.0/)
### Fixed
* GODT-787 GODT-978 Fix IE and Bridge importing to sent not showing up in inbox (setting up flags properly).
+* GODT-1006 Use correct macOS keychain name.