簡體   English   中英

如何在Android Native Code中使用Keystore?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM