Gizli anahtarları anahtar deposunda saklama

Tradefed, sırların bir anahtar deposu hizmetinde depolanabileceği ve test sırasında kullanılmak üzere test çalıştırma zamanında istenebileceği bir anahtar deposu kavramını içerir.

Anahtar deposu kullanma

Bir anahtar deposunu kullanmak için öncelikle global yapılandırmanızda anahtar deposunun kaynağını tanımlamanız gerekir.

İşlem tamamlandığında, depolanan anahtarları şu yollarla kullanabilirsiniz: USE_KEYSTORE@{key}

JSONFileKeyStore

Tradefed çekirdeğindeki örnek uygulama, JSON anahtar deposunu kullanır. JSONFileKeyStoreClient. Bu anahtar deposunu kullanmak için anahtar/değer eşlemeleri içeren bir JSON anahtar dosyası tanımlamanız gerekir.

Örneğin, /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>

İlgili testleri yürütürken artık değerleri USE_KEYSTORE@test_account olarak iletebilirsiniz. Bu değerler için TF, anahtar deposuna sorgu gönderir ve testin bir parçası olarak değerini kullanır.

Ana makine tabanlı anahtar deposu dosyası

Ana bilgisayar tabanlı anahtar/değer çiftlerini tanımlamak için bir /path/to/keystore_ssid.json dosyası 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ı, değeri ise eşleşen ana makine adına sahip herhangi bir ana makine için anahtar/değer çiftleri kümesidir.

Ardından, ana makine tabanlı anahtar deposu dosyasını eklemek için TF global yapılandırma dosyanızı 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>

Anahtar deposu tabanlı bir anahtar deposu dosyasında tanımlanan 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 anahtar deposu dosyası varsa sıra önemlidir. Bir anahtarın değeri birden fazla dosyada tanımlanmışsa bu türdeki son dosyadaki değer diğerlerinin yerini alır.