اسرار را با keystore ذخیره کنید

Tradefed شامل مفهوم keystore است که در آن اسرار را می توان در یک سرویس keystore ذخیره کرد و در زمان اجرای آزمایشی برای استفاده در طول آزمایش درخواست کرد.

از فروشگاه کلید استفاده کنید

برای استفاده از keystore، ابتدا باید منبع را برای keystore در پیکربندی جهانی خود تعریف کنید.

پس از اتمام، می توانید از کلیدهای ذخیره شده از طریق: USE_KEYSTORE@{key} استفاده کنید

JSONFileKeyStore

اجرای نمونه در هسته Tradefed از یک فروشگاه کلید JSON، JSONFileKeyStoreClient استفاده می کند. برای استفاده از این ذخیره‌سازی کلید، باید یک فایل کلید 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 درخواست می‌کند و از مقدار آن به عنوان بخشی از آزمایش استفاده می‌کند.

فایل فروشگاه کلید مبتنی بر میزبان

برای تعریف جفت‌های کلید-مقدار مبتنی بر میزبان، می‌توانید یک فایل /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"
  }
}

کلید یک ورودی در فایل یک الگوی عبارت منظم (regex) برای نام میزبان است و مقدار آن مجموعه ای از جفت های کلید-مقدار برای هر میزبانی با نام میزبان منطبق است.

سپس فایل پیکربندی سراسری TF خود را به‌روزرسانی کنید تا فایل ذخیره‌سازی کلید مبتنی بر میزبان را نیز شامل شود:

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

مقدار کلیدی که در فایل ذخیره‌سازی کلید مبتنی بر میزبان تعریف شده است، مقداری را که در فایل ذخیره‌سازی کلید مشخص شده با json-key-store-file تعریف شده است، لغو می‌کند.

هنگامی که چندین فایل فروشگاه کلید مبتنی بر میزبان در keystore وجود دارد، ترتیب مهم است. اگر مقدار یک کلید در چندین فایل تعریف شده باشد، مقدار موجود در آخرین فایل، بقیه را لغو می کند.