Gizli anahtarları anahtar deposuyla depolama

Tradefed, anahtar deposu kavramını içerir. Burada gizli anahtarlar bir anahtar deposu hizmetinde depolanabilir ve test sırasında kullanılmak üzere test çalıştırma zamanında istenebilir.

Anahtar deposu kullanma

Anahtar deposunu kullanmak için öncelikle küresel yapılandırmanızda anahtar deposunun kaynağını tanımlamanız gerekir.

İşlemi tamamladıktan sonra, depolanan anahtarları şu yöntemlerle kullanabilirsiniz: USE_KEYSTORE@{key}

JSONFileKeyStore

Tradefed Core'daki örnek uygulama bir JSON anahtar deposu (JSONFileKeyStoreClient) kullanır. Bu anahtar deposunu kullanmak için anahtar/değer eşlemeleri içeren bir JSON anahtar dosyası tanımlamanız gerekir.

Örneğin, bir /path/to/keystore.json dosyasını şu şekilde tanımlayabilirsiniz:

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

Ardından, TF global yapılandırma dosyanıza aşağıdaki satırları ekleyin:

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

Artık ilgili testleri çalıştırırken değerleri USE_KEYSTORE@test_account olarak iletebilirsiniz. TF, bu durumda anahtar deposunu sorgular ve değerini testin bir parçası olarak kullanır.

Ana makine tabanlı anahtar deposu dosyası

Ana makineye dayalı anahtar/değer çiftleri tanımlamak için /path/to/keystore_ssid.json dosyasını şu şekilde tanımlayabilirsiniz:

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

Dosyadaki bir girişin anahtarı, ana makine adı için normal ifade (regex) kalıbıdır ve değer, eşleşen ana makine adına sahip tüm ana makineler için anahtar/değer çiftleri kümesidir.

Ardından TF global yapılandırma dosyanızı, ana makine tabanlı anahtar mağazası dosyasını içerecek şekilde güncelleyin:

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

Ana makine tabanlı bir anahtar deposu dosyasında tanımlanan bir anahtarın değeri, json-key-store-file ile belirtilen anahtar deposu dosyasında tanımlanan değeri geçersiz kılar.

Anahtar deposunda birden fazla ana makinaya dayalı anahtar mağazası dosyası varsa sıra önemlidir. Bir anahtarın değeri birden fazla dosyada tanımlanmışsa bu tür dosyalardan en sonuncusu, diğer dosyalardaki değerleri geçersiz kılar.