אחסן סודות עם מאגר מפתחות

Tradefed כולל את הרעיון של מאגר מפתחות , שבו ניתן לאחסן סודות בשירות מאגר מפתחות ולבקש אותם בזמן ריצת הבדיקה לשימוש במהלך הבדיקה.

השתמש במאגר מפתחות

כדי להשתמש במאגר מפתחות, עליך להגדיר תחילה את המקור עבור מאגר המפתחות בתצורה הגלובלית שלך.

לאחר שתסיים, תוכל להשתמש במפתחות המאוחסנים באמצעות: 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 ישאל את מאגר המפתחות עבורו וישתמש בערך שלו כחלק מהבדיקה.

קובץ מאגר מפתחות מבוסס מארח

כדי להגדיר זוגות מפתח-ערך מבוססי מארח, תוכל להגדיר קובץ /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 כך שיכלול את קובץ מאגר המפתחות המבוסס על המארח:

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

כאשר קיימים קבצי מאגר מפתחות מבוססי מארח במאגר המפתחות, הסדר חשוב. אם הערך של מפתח מוגדר במספר קבצים, הערך בקובץ האחרון כזה יחליף את השאר.