कीस्टोर के साथ रहस्यों को संग्रहित करें

ट्रेडफेड में एक कीस्टोर की अवधारणा शामिल है, जहां रहस्यों को एक कीस्टोर सेवा में संग्रहीत किया जा सकता है और परीक्षण के दौरान उपयोग के लिए परीक्षण चलाने के समय अनुरोध किया जा सकता है।

एक कीस्टोर का प्रयोग करें

कीस्टोर का उपयोग करने के लिए, आपको पहले अपने वैश्विक कॉन्फ़िगरेशन में कीस्टोर के लिए स्रोत को परिभाषित करना होगा।

एक बार हो जाने के बाद, आप संग्रहीत कुंजियों का उपयोग इसके माध्यम से कर सकते हैं: USE_KEYSTORE@{key}

JSONFileKeyStore

ट्रेडफेड कोर में नमूना कार्यान्वयन 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 के साथ निर्दिष्ट कीस्टोर फ़ाइल में परिभाषित कुंजी को ओवरराइड करता है।

जब कई होस्ट-आधारित कीस्टोर फ़ाइलें कीस्टोर में मौजूद होती हैं, तो ऑर्डर मायने रखता है। यदि किसी कुंजी का मान एकाधिक फ़ाइलों में परिभाषित किया गया है, तो अंतिम ऐसी फ़ाइल का मान बाकी फ़ाइलों को ओवरराइड कर देता है।