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

يتضمّن 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، وسيطلب إطار عمل اختبار الأداء بعد ذلك من مخزن المفاتيح استخدام قيمته كجزء من الاختبار.

ملف تخزين مفاتيح مستنِد إلى المضيف

لتحديد أزواج مفاتيح وقيم مستندة إلى المضيف، يمكنك تحديد ملف /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.

عندما تتوفّر ملفات متعددة لملف تخزين المفاتيح المستندة إلى المضيف في ملف تخزين المفاتيح، يهمّ الترتيب. إذا تم تحديد قيمة مفتاح في ملفات متعددة، ستحلّ القيمة في الملف الأخير محلّ القيم الأخرى.