Поддерживает ли Vault Transit Secrect Engine тот же порядок (в качестве ввода) в ответ для выполнения пакетного шифрования и дешифрования? - PullRequest
0 голосов
/ 05 июля 2019

Механизм секретного транзита хранилища обеспечивает возможность пакетного шифрования / дешифрования, как показано в: https://www.vaultproject.io/api/secret/transit/index.html

batch_input (array: nil) - Указывает список элементов, которые должны быть зашифрованы в одном пакете.

Я хочу знать, использую ли я batch_input для шифрования нескольких открытых текстов, сохраняет ли ответ также в том же порядке, что и элементы списка ввода, Кроме того, при дешифровании, если я отправляю несколько шифротекстов, делаю дешифрование, сохраняет ли ответ также тот же порядок, что и для элементов списка ввода

Я несколько раз проверял это на своем сервере, он имеет тот же порядок, но я не уверен, будет ли он всегда ответ в том же порядке, что и элементы списка ввода. Пожалуйста, помогите подтвердить, что мое предположение верно или нет?

batch_input.json:

{
  "batch_input":
    [
      {
        "plaintext": "MTExCg=="
      },
      {
        "plaintext": "NTU1Cg=="
      }
    ]
}

И запрос на пакетное шифрование вроде:

curl --header "X-Vault-Token: $VAULT_TOKEN" \
       --request POST \
       --data @batch_input.json \
       http://127.0.0.1:8200/v1/transit/encrypt/my_key


{
  "request_id": "21f85300-e133-ce22-3ccc-cfe16ec0db7f",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "batch_results": [
      {
        "ciphertext": "vault:v1:j2r7aEnrHol4sX3z0WpSs3xxLOb4HBwaEqwS06IWtAU="
      },
      {
        "ciphertext": "vault:v1:y+zFbNJYdDifr1btussbwZwLGXv5cH7X6l2PDg2axgc="
      }
    ]
  },
  "wrap_info": null,
  "warnings": null,
  "auth": null
}

А запрос на пакетную расшифровку будет выглядеть так:

batch_input_d.json:

{
  "batch_input":
    [
      {
        "ciphertext": "vault:v1:j2r7aEnrHol4sX3z0WpSs3xxLOb4HBwaEqwS06IWtAU="
      },
      {
        "ciphertext": "vault:v1:y+zFbNJYdDifr1btussbwZwLGXv5cH7X6l2PDg2axgc="
      }
    ]
}

Запрос на расшифровку, например:

curl --header "X-Vault-Token: $VAULT_TOKEN" \
       --request POST \
       --data @batch_input_d.json \
       http://127.0.0.1:8200/v1/transit/decrypt/my_key

{
  "request_id": "fad14296-2d3b-52dc-339d-4d6004146390",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "batch_results": [
      {
        "plaintext": "MTExCg=="
      },
      {
        "plaintext": "NTU1Cg=="
      }
    ]
  },
  "wrap_info": null,
  "warnings": null,
  "auth": null
}
...