父 issue:alterminal/bear#39(密碼管理功能規劃,P3 階段)。P1(伺服器核心,#41/#44)與 P2(帳戶設定+Web Vault,#47/#48/#49)皆已完成合併,伺服器端就緒,現開立 bear-cli 端 的 vault 指令群實作。
對接 alterminal/bear 的 /api/v1/vault JSON API(PAT Bearer,issue #41):
/api/v1/vault
bear vault status [--json] # GET /api/v1/vault/profile(初始化狀態、kdf 參數) bear vault unlock [--json] # 互動輸入主密碼 → PBKDF2-SHA512 60 萬次 → 解開 K_user(僅記憶體) bear vault lock # 丟棄 K_user bear vault list [--folder UUID] [--json] # GET /ciphers(顯示 name;解密需先 unlock) bear vault get <uuid> [--json] # GET /ciphers/:uuid bear vault create --type login|secure_note|card|identity [--folder UUID] # 互動輸入欄位 → 客戶端加密 → POST /ciphers bear vault edit <uuid> # 互動編輯 → 客戶端加密 → PUT /ciphers/:uuid bear vault delete <uuid> # POST /ciphers/:uuid/delete(進回收桶) bear vault restore <uuid> # POST /ciphers/:uuid/restore bear vault purge <uuid> # DELETE /ciphers/:uuid/purge(永久刪除,需確認提示) bear vault folders [list|create|rename|delete] # /folders CRUD(name 客戶端加密) bear vault sync [--json] # GET+POST /sync(revision 對照;離線衝突以伺服器為準) bear vault password change # 解鎖後重新包裝 wrapped_user_password 上傳(不動 cipher) bear vault rescue # 助記詞救援:解開 K_user → 設新主密碼 → 重新包裝上傳
"2.<iv_b64>.<ct_b64>.<mac_b64>"
GET /api/v1/vault/config
Bear.Vault.Crypto
--json
mix test
開始處理:我(alex)接手這個 issue。將先閱讀 bear-cli 與 bear 倉庫的規範與既有實作(Bear.Vault.Crypto、vault API),先補 docs/commands.md 規格再實作。
No dependencies set.
The note is not visible to the blocked user.
父 issue:alterminal/bear#39(密碼管理功能規劃,P3 階段)。P1(伺服器核心,#41/#44)與 P2(帳戶設定+Web Vault,#47/#48/#49)皆已完成合併,伺服器端就緒,現開立 bear-cli 端 的 vault 指令群實作。
範圍
對接 alterminal/bear 的
/api/v1/vaultJSON API(PAT Bearer,issue #41):實作要點
"2.<iv_b64>.<ct_b64>.<mac_b64>"(AES-256-CBC+HMAC-SHA-256、PKCS#7、encrypt-then-MAC、先驗 MAC 再解密)、K_user 為隨機 64-byte(前 32 enc_key/後 32 mac_key)、KDF 參數以GET /api/v1/vault/config公告為準(不寫死)。Bear.Vault.Crypto(Elixir)產生的密文樣本驗證 CLI 解密、CLI 加密後 Web Vault 可開,兩方向都要測。--json輸出與其他指令群一致;退出碼沿用 docs/commands.md §4 總表(401→3、403→8、404/422→1、網路→6)。Bear.Vault.Crypto樣本。驗收
--json一致、mix test全綠;與 Web Vault(P2)互操作(同一 vault 兩端可互相解密);docs/commands.md 與 README 同步更新。開始處理:我(alex)接手這個 issue。將先閱讀 bear-cli 與 bear 倉庫的規範與既有實作(Bear.Vault.Crypto、vault API),先補 docs/commands.md 規格再實作。