![](/img/trans.png)
[英]How Can I Use the Android KeyStore to securely store arbitrary strings?
[英]How can I use Keystore in Android Native Code?
我需要加密一些由C ++編寫的android本機服務創建的文件。 我必須使用Keystore但我不知道如何使用。 有沒有圖書館或文件?
我知道線程已經老了,但未來可能會有所幫助。 以下提示涉及Android Keystore v3和v4(分別為Oreo和Pie)。
基本上,HAL密鑰庫(如所描述的在這里 )被包裹在密鑰庫服務。 服務API模仿IKeymasterDevice.hal中描述的接口。 您可以使用字符串別名代替blob(例如“mySecretKey”)。 該服務將keyblobs(原始密鑰材料+關鍵參數)存儲到文件系統。 默認位置是/ data / misc / keystore / user_0 / <uid> _ <key_alias>。
密鑰庫服務也是檢查請求進程是否允許使用密鑰的層(基於進程uid)。
與密鑰庫服務的通信是通過綁定器接口(IPC)完成的。 您可能想在此處閱讀更多相關信息。
AOSP包含參考客戶端實現在這里 。
可以在此處的庫存CLI中找到示例用法
AOSP附帶基於SW的密鑰庫實現,可在此處找到。 默認情況下,AOSP版本上的keyblob未加密。
請注意,庫存keystore_cli_v2不提供對密鑰導入的支持。 如果您計划離線加密數據(例如pycrypto),則必須對其進行擴展。 如果您打算這樣做,請記住keystore_client_impl.cpp鏈接到libkeystore_binder.so而不是keystore_cli_v2。
對於非對稱密鑰密碼,您可以使用API導出公鑰組件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.