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

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

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

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

לאחר מכן, אפשר יהיה להשתמש במפתחות השמורים דרך: USE_KEYSTORE@{key}

JSONFileKeyStore

ההטמעה לדוגמה ב-Trendified Core משתמשת במאגר מפתחות 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"
  }
}

המפתח של רשומה בקובץ הוא תבנית של ביטויים רגולריים (regex) של שם מארח והערך הוא קבוצה של צמדי מפתח/ערך לכל מארח שיש לו שם המארח התואם.

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

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

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