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",
}
इसके बाद, आपको अपनी 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 के साथ तय की गई कीस्टोर फ़ाइल में तय की गई वैल्यू को बदल देती है.
अगर कीस्टोर में, होस्ट पर आधारित एक से ज़्यादा कीस्टोर फ़ाइलें मौजूद हैं, तो उनका क्रम मायने रखता है. अगर किसी कुंजी की वैल्यू, एक से ज़्यादा फ़ाइलों में तय की गई है, तो ऐसी आखिरी फ़ाइल में मौजूद वैल्यू, बाकी वैल्यू को बदल देती है.