Simpan Rahasia dengan Keystore

Tradefed mencakup konsep keystore , di mana rahasia dapat disimpan dalam layanan keystore dan diminta pada waktu pengujian untuk digunakan selama pengujian.

Cara menggunakan keystore

Untuk menggunakan keystore, Anda harus terlebih dahulu menentukan sumber keystore dalam konfigurasi global Anda .

Setelah selesai, Anda dapat menggunakan kunci yang disimpan melalui: USE_KEYSTORE@{key}

JSONFileKeyStore

Contoh implementasi di inti Tradefed menggunakan keystore JSON, JSONFileKeyStoreClient . Untuk menggunakan keystore ini, Anda harus menentukan file kunci JSON yang memiliki pemetaan kunci untuk nilai.

Misalnya, Anda dapat mendefinisikan file /path/to/keystore.json sebagai

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

Kemudian Anda akan menambahkan baris berikut di file konfigurasi global TF Anda:

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

Saat menjalankan pengujian terkait, Anda sekarang dapat meneruskan nilai sebagai USE_KEYSTORE@test_account , yang kemudian akan dikueri oleh TF ke keystore dan menggunakan nilainya sebagai bagian dari pengujian.

File keystore berbasis host

Untuk menentukan pasangan nilai kunci berbasis host, Anda dapat mendefinisikan file /path/to/keystore_ssid.json sebagai

{
  "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"
  }
}

Kunci entri dalam file adalah pola ekspresi reguler (regex) untuk nama host dan nilainya adalah kumpulan pasangan nilai kunci untuk semua host dengan nama host yang cocok.

Kemudian perbarui file konfigurasi global TF Anda untuk menyertakan file keystore berbasis host:

<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>

Nilai kunci yang ditentukan dalam file keystore berbasis host menggantikan yang ditentukan dalam file keystore yang ditentukan dengan json-key-store-file .

Ketika beberapa file keystore berbasis host ada di keystore, urutannya penting. Jika nilai untuk sebuah kunci ditentukan dalam beberapa file, nilai dalam file terakhir akan menimpa yang lainnya.