Proposal: Keyring in keyring? Or how to reduce the number of items in a Keychain-backed keyring
- 主要語言
- Go
- 星號
- 657
- 分支
- 155
- PR 合併指標
- 30 天內沒有已合併 PR
描述
Hi, I'm the (main) maintainer of aws-okta. We don't sign our Mac OS X builds, so we constantly run into the issue of users having to reauthorize aws-okta for all its Keychain items, every time the binary changes (upgrades, new builds during dev, ...).
Probably, the best solution is to figure out signing, but [my workaround was to collapse all items into a single JSON item](https://github.com/segmentio/aws-okta/pull/174). But it made me think that maybe this is useful to keyring more generally. It's essentially a JSON-backed, unencrypted keyring in a second Keychain-backed keyring item.
First off, I'm wondering if this is actually useful to any other users.
Second, I'm wondering how this should be implemented.
One approach is to add a new type like:
```
type KeyringInKeyring struct {
Parent *Keyring
ParentItemKey string
}
```
That would basically proxy `Keyring.*` methods to the parent keyring.
I'm not sure of the general utility of this approach. Another would be to solve this specific use case with a new backend `SingleItemKeychain` that would embed all Items in a single Keychain item.
Thoughts? To be clear, I'm considering contributing this myself.
貢獻指南
這個儲存庫沒有索引到貢獻指南
研究方向
該 issue 討論了一個可能的新 backend 或 wrapper,用來減少 Keychain items。先檢查 codebase 中現有的 Keychain backend,了解 items 是如何儲存的。查看提議的 struct,以及它會如何 proxy methods。透過審查 keyring interface,判斷新的 backend 或 wrapper 哪個更合適。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- go
- 領域
- cli, security
- Issue 類型
- 功能
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 30/100