-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Labels
bugan unexpected problem or unintended behavioran unexpected problem or unintended behavior
Description
I'm on Windows, R 4.4.2, keyring v1.3.2
It seems that key_set() and key_get() act unpredictably when the provided service parameter matches a stored value but with different casing.
Reproducible example:
library(keyring)
key_set_with_value("example", password = "pass1")
key_get("example")
# [1] "pass1"
key_set_with_value("EXAMPLE", password = "pass2")
key_get("EXAMPLE")
# [1] "pass1"
Looking in the Windows Credential Manager after running this code, I only see the :example: credential (no :EXAMPLE:). If I remove the :example: credential, THEN I see an :EXAMPLE: credential appear (with password "pass2")
I'm not sure what's possible, but I think the expected behavior would be (in order of desirability):
- Service is case-sensitive (so both "example" and "EXAMPLE" can be set/accessed separately). It seems like this may not be possible with Windows
- Service is case-insensitive on both set and get (so setting "EXAMPLE" overwrites "example")
- key_set() throws an error if attempting to set a credential that is a different casing of a currently stored value
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugan unexpected problem or unintended behavioran unexpected problem or unintended behavior