تخزين الأسرار مع keystore

يتضمن Tradefed مفهوم مخزن المفاتيح ، حيث يمكن تخزين الأسرار في خدمة تخزين المفاتيح وطلبها في وقت تشغيل الاختبار لاستخدامها أثناء الاختبار.

استخدم مخزن المفاتيح

لاستخدام مخزن المفاتيح، يتعين عليك أولاً تحديد مصدر مخزن المفاتيح في التكوين العام الخاص بك.

بمجرد الانتهاء، يمكنك بعد ذلك استخدام المفاتيح المخزنة عبر: USE_KEYSTORE@{key}

JSONFileKeyStore

يستخدم نموذج التنفيذ في Tradefed 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 الخاص بك ليشمل ملف تخزين المفاتيح المستند إلى المضيف:

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

عند وجود ملفات تخزين مفاتيح متعددة تعتمد على المضيف في مخزن المفاتيح، يكون الترتيب مهمًا. إذا تم تحديد قيمة المفتاح في ملفات متعددة، فإن القيمة الموجودة في آخر ملف من هذا القبيل تتجاوز الباقي.