เก็บข้อมูลลับด้วยคีย์สโตร์

Tradefed ประกอบด้วยแนวคิดของ keystore ซึ่งสามารถจัดเก็บข้อมูลลับไว้ในบริการคีย์สโตร์และขอใช้เมื่อทำการทดสอบในระหว่างการทดสอบ

ใช้คีย์สโตร์

หากต้องการใช้คีย์สโตร์ ก่อนอื่นคุณต้องกำหนดแหล่งที่มาสำหรับคีย์สโตร์ในการกำหนดค่าส่วนกลาง

เมื่อเสร็จแล้ว คุณจะใช้คีย์ที่เก็บไว้ได้ผ่าน 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"
  }
}

คีย์ของรายการในไฟล์คือรูปแบบนิพจน์ทั่วไป (นิพจน์ทั่วไป) สำหรับชื่อโฮสต์ และค่าคือชุดคู่คีย์-ค่าสำหรับโฮสต์ที่มีชื่อโฮสต์ตรงกัน

จากนั้นอัปเดตไฟล์การกําหนดค่า 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

เมื่อมีไฟล์คีย์สโตร์ตามโฮสต์หลายไฟล์อยู่ในคีย์สโตร์ ลำดับจะมีความสำคัญ หากมีการกำหนดค่าสำหรับคีย์ในหลายไฟล์ ค่าในไฟล์สุดท้ายจะลบล้างส่วนที่เหลือ