feat/vault-commands
main
實作 bear vault 指令群(issue #17),對接 alterminal/bear#41 的 /api/v1/vault JSON API(PAT Bearer,任何有效帳號)。
bear vault
/api/v1/vault
vault status | unlock | lock | list [--folder UUID] | get <uuid> | create --type …| edit <uuid> vault delete <uuid>(回收桶)| restore <uuid> | purge <uuid>(永久刪除,需確認) vault folders list|create|rename|delete vault sync(伺服器為準) vault password change(重新包裝 K_user,不動 cipher) vault rescue(BIP39 助記詞救援重設主密碼)
2.<iv>.<ct>.<mac>
GET /api/v1/vault/config
vault unlock 解開 K_user 後輸出 export BEAR_VAULT_SESSION=<base64>(同 Bitwarden CLI BW_SESSION 慣例);後續指令從環境變數讀,vault lock 提示 unset。不寫入任何檔案(無 keyring、無快取)。
vault unlock
export BEAR_VAULT_SESSION=<base64>
vault lock
Bear.Vault.Crypto
mix precommit
關聯 issue #17;父 issue alterminal/bear#39(P3 階段)。
- 對接 alterminal/bear#41 的 /api/v1/vault JSON API(PAT Bearer) - 客戶端端到端加密,格式與 Web Vault(P2)完全一致: - 加密字串 2.<iv>.<ct>.<mac>(AES-256-CBC+HMAC-SHA-256、PKCS#7、encrypt-then-MAC) - 主金鑰 PBKDF2-SHA512(迭代數取自 /vault/config 與 profile,不寫死;salt=email 小寫) - BIP39 助記詞(12 字、128-bit、英文詞表)+救援路徑 - K_user 僅存記憶體:vault unlock 匯出 BEAR_VAULT_SESSION(base64), 同 Bitwarden CLI BW_SESSION 慣例;lock 提示 unset;不寫入任何檔案 - docs/commands.md 補 §3.11 規格;README 同步 - 測試:fake API 注入+Bear.Vault.Crypto 密文樣本交叉驗證(雙向); BIP39 官方向量;46 個新測試,全套 196 passed
核准:獨立交叉驗證通過(Bear.Vault.Crypto 產生之 wrapped key 與密文,CLI 可解;CLI 加密之密文 Bear 與 Web Vault JS 皆可解;篡改 MAC 兩側皆拒絕);mix precommit 196 passed;API 端點與 bear 路由逐一對應;文件(README、docs/commands.md §3.11)同步。
No dependencies set.
The note is not visible to the blocked user.
摘要
實作
bear vault指令群(issue #17),對接 alterminal/bear#41 的/api/v1/vaultJSON API(PAT Bearer,任何有效帳號)。指令
端到端加密(與 Web Vault P2 完全一致)
2.<iv>.<ct>.<mac>:AES-256-CBC+PKCS#7、encrypt-then-MAC(HMAC-SHA-256)、先驗 MAC 再解密GET /api/v1/vault/config公告與 profile 記錄為準,不寫死;salt=帳號 email 小寫K_user 僅記憶體
vault unlock解開 K_user 後輸出export BEAR_VAULT_SESSION=<base64>(同 Bitwarden CLI BW_SESSION 慣例);後續指令從環境變數讀,vault lock提示 unset。不寫入任何檔案(無 keyring、無快取)。交叉驗證(issue 要求,兩方向都測)
Bear.Vault.Crypto(Elixir)產生:CLI 解密 Bear 加密的 cipher 欄位、wrapped key(密碼與助記詞兩路徑)✅Bear.Vault.Crypto解密 ✅測試與文件
mix precommit(compile --warnings-as-errors+format+test)196 passed關聯 issue #17;父 issue alterminal/bear#39(P3 階段)。
核准:獨立交叉驗證通過(Bear.Vault.Crypto 產生之 wrapped key 與密文,CLI 可解;CLI 加密之密文 Bear 與 Web Vault JS 皆可解;篡改 MAC 兩側皆拒絕);mix precommit 196 passed;API 端點與 bear 路由逐一對應;文件(README、docs/commands.md §3.11)同步。