Lưu trữ bí mật với kho khóa

Tradefed bao gồm khái niệm về kho khóa , nơi các bí mật có thể được lưu trữ trong dịch vụ kho khóa và được yêu cầu sử dụng trong thời gian chạy thử nghiệm trong quá trình thử nghiệm.

Sử dụng kho khóa

Để sử dụng kho khóa, trước tiên bạn cần xác định nguồn cho kho khóa trong cấu hình chung của mình.

Sau khi hoàn tất, bạn có thể sử dụng các khóa được lưu trữ qua: USE_KEYSTORE@{key}

JSONFileKeyStore

Việc triển khai mẫu trong lõi Tradefed sử dụng kho khóa JSON, JSONFileKeyStoreClient . Để sử dụng kho khóa này, bạn sẽ xác định một tệp khóa JSON có khóa để ánh xạ giá trị.

Ví dụ: bạn có thể xác định tệp /path/to/keystore.json

{
  "test_account": "foo@gmail.com",
  "test_account_pwd": "helloworld",
  "wifi_lab_ssid": "Google_private_AP",
  "wifi_lab_pwd": "secret123",
}

Sau đó, bạn sẽ thêm các dòng sau vào tệp cấu hình toàn cầu TF của mình:

<key_store class="com.android.tradefed.util.keystore.JSONFileKeyStoreFactory">
<option name="json-key-store-file" value="/path/to/keystore.json" />
</key_store>

Khi thực hiện các thử nghiệm liên quan, giờ đây bạn có thể chuyển các giá trị dưới dạng USE_KEYSTORE@test_account , sau đó TF sẽ truy vấn kho khóa và sử dụng giá trị của nó như một phần của thử nghiệm.

Tệp kho khóa dựa trên máy chủ

Để xác định các cặp khóa-giá trị dựa trên máy chủ, bạn có thể xác định tệp /path/to/keystore_ssid.json như

{
  "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"
  }
}

Khóa của một mục trong tệp là mẫu biểu thức chính quy (regex) cho tên máy chủ và giá trị là tập hợp các cặp khóa-giá trị cho bất kỳ máy chủ nào có tên máy chủ phù hợp.

Sau đó cập nhật tệp cấu hình toàn cầu TF của bạn để bao gồm tệp kho khóa dựa trên máy chủ:

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

Giá trị của khóa được xác định trong tệp kho khóa dựa trên máy chủ sẽ ghi đè giá trị được xác định trong tệp kho khóa được chỉ định bằng json-key-store-file .

Khi có nhiều tệp kho khóa dựa trên máy chủ trong kho khóa, thứ tự sẽ quan trọng. Nếu giá trị của một khóa được xác định trong nhiều tệp thì giá trị trong tệp cuối cùng đó sẽ ghi đè phần còn lại.