You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
I've found an issue while retrieving credentials set in the Windows Credential Manager by another application (not using go-keyring).
Let's take this scenario, the main application sets a new credential to a specific service and username:
serviceName = service:name
username = $YOUR_USERNAME
When trying to call keyring.Get("service:name","$YOUR_USERNAME"), the searched service name is created merging serviceName and username (searchedServiceName = service:name:$YOUR_USERNAME), this behaviour is implemented in the function credName.
This problem is the same also with keyring.Delete and keyring.Set.
Since changing this behavior would break every windows application using this library, I'd propose:
add a "raw" counterpart to the public apis (RawGet, RawSet and RawDelete) that skips this behaviour on Windows (on other systems this would be a proxy to the original calls)
expose a new public api that can set/toggle a raw mode on Windows, but this will create problems with concurrent goroutines (on other systems that would be a NOOP)
I'm open to work on this as soon as a decision is taken.
Thanks 😄
The text was updated successfully, but these errors were encountered:
FLuzzi-csw
changed the title
[Windows] keyring.Get has unexpected and limiting behaviour
[Windows] Get, Set and Delte have unexpected and limiting behaviours
Jan 24, 2024
FLuzzi-csw
changed the title
[Windows] Get, Set and Delte have unexpected and limiting behaviours
[Windows] Get, Set and Delete have unexpected and limiting behaviours
Jan 25, 2024
Just do understand your use case from a high level, do you want to be able to set a credential with another app and read it with an app using go-keyring? Can you elaborate on the use case you have in mind?
Yes, you got it right.
I need to access the credentials set by the main application (not using go-keyring) with an external tool that uses go-keyring.
Sadly, the behaviour described before makes it impossible.
Hi,
I've found an issue while retrieving credentials set in the Windows Credential Manager by another application (not using
go-keyring
).Let's take this scenario, the main application sets a new credential to a specific service and username:
serviceName = service:name
username = $YOUR_USERNAME
When trying to call
keyring.Get("service:name","$YOUR_USERNAME")
, the searched service name is created mergingserviceName
andusername
(searchedServiceName = service:name:$YOUR_USERNAME
), this behaviour is implemented in the functioncredName
.This problem is the same also with
keyring.Delete
andkeyring.Set
.Since changing this behavior would break every windows application using this library, I'd propose:
RawGet
,RawSet
andRawDelete
) that skips this behaviour on Windows (on other systems this would be a proxy to the original calls)NOOP
)I'm open to work on this as soon as a decision is taken.
Thanks 😄
The text was updated successfully, but these errors were encountered: