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

يتضمّن 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",
}

بعد ذلك، ستضيف الأسطر التالية في ملف الإعداد العام لـ TensorFlow:

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

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