使用 KeyStore 儲存密鑰

交易包括 Keystore 的概念、 可將密鑰儲存在 KeyStore 服務中,並在測試執行階段提出要求 測試期間使用

使用 KeyStore

如要使用 KeyStore,您必須先在全域設定中定義 KeyStore 的來源。

完成後,您可以透過以下方式使用儲存的金鑰:USE_KEYSTORE@{key}

JSONFileKeyStore

Tradefed 核心中的範例實作會使用 JSON 金鑰庫 JSONFileKeyStoreClient。如要使用這個 KeyStore,您必須定義 JSON 金鑰檔案 當中包含鍵與值對應的鍵/值

舉例來說,您可以將 /path/to/keystore.json 檔案定義為

{
  "test_account": "foo@gmail.com",
  "test_account_pwd": "helloworld",
  "wifi_lab_ssid": "Google_private_AP",
  "wifi_lab_pwd": "secret123",
}

接著,您會在 TF 全域設定檔中新增下列幾行程式碼:

<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>

執行相關測試時,您現在可以將值做為 USE_KEYSTORE@test_account,TF 之後會查詢 KeyStore 並使用該 KeyStore 值。

主機式 KeyStore 檔案

如要定義主機式鍵/值組合,您可以定義 將 /path/to/keystore_ssid.json 個檔案設為

{
  "host_a.*\\.corp\\.com": {
    "wifi_lab_ssid": "ssid_a",
    "wifi_lab_pwd": "secret_a"
  },
  "host_b.*\\.corp\\.com": {
    "wifi_lab_ssid": "ssid_b",
    "wifi_lab_pwd": "secret_b"
  }
}

檔案中項目的鍵是 主機名稱,而值即為一組鍵/值組合, 相符的主機名稱。

接著更新 TF 全域設定檔,納入主機式 KeyStore 檔案:

<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
<option name="host-based-key-store-file" value="/path/to/keystore-ssid.json" />
</key_store>

在以主機為基礎的 KeyStore 檔案中定義的鍵值會覆寫以 json-key-store-file 指定的 KeyStore 檔案中定義的值。

如果 KeyStore 中有多個主機式 KeyStore 檔案,順序 因為這一切都很重要如果多個檔案中定義了某個鍵的值,則 最後,這些檔案會覆寫其餘檔案