Orders API - 用户指南

Orders 资源允许用户请求 barbican 生成密钥。这对于请求创建公钥/私钥对也非常有用。

Orders 资源支持以下类型
  • 对称密钥

  • 非对称密钥

本用户指南提供了 Orders 资源的高级示例。它将假定您将使用 barbican 的本地运行开发环境。如果您需要设置方面的帮助,请参考 开发指南

创建 Order

当您希望 barbican 生成密钥时,您需要创建一个 Order。为了使 Order 正确处理,参数 mode、bit_length 和 algorithm 必须有效。否则 Order 将失败,密钥将无法生成。下面的示例显示了一个用于生成对称密钥的有效 Order。您可以在 Orders API 文档中找到有关参数的更详细说明。

curl -X POST -H "X-Auth-Token: $TOKEN" -H "content-type:application/json" -d '{
"type":"key", "meta": { "name": "secretname", "algorithm": "aes",
"bit_length": 256, "mode": "cbc", "payload_content_type": "application/octet-stream"}
}' https://:9311/v1/orders

在将您的 Order 提交给 barbican 后,您应该收到一个 Order 引用。

{"order_ref": "https://:9311/v1/orders/3a5c6748-44de-4c1c-9e54-085c3f79e942"}

Order 引用用于检索您放置的 Order 的元数据,然后可用于检索您的密钥。

检索 Order

为了检索 Order,我们将使用在初始创建期间返回的引用。(参见 创建 Order。)

curl -H "X-Auth-Token: $TOKEN" -H 'Accept:application/json' \
https://:9311/v1/orders/3a5c6748-44de-4c1c-9e54-085c3f79e942

典型的响应如下

{
    "created": "2015-10-15T18:15:10",
    "creator_id": "40540f978fbd45c1af18910e3e02b63f",
    "meta": {
        "algorithm": "AES",
        "bit_length": 256,
        "expiration": null,
        "mode": "cbc",
        "name": "secretname",
        "payload_content_type": "application/octet-stream"
    },
    "order_ref": "https://:9311/v1/orders/3a5c6748-44de-4c1c-9e54-085c3f79e942",
    "secret_ref": "https://:9311/v1/secrets/bcd1b853-edeb-4509-9f12-019b8c8dfb5f",
    "status": "ACTIVE",
    "sub_status": "Unknown",
    "sub_status_message": "Unknown",
    "type": "key",
    "updated": "2015-10-15T18:15:10"
}

这是与 Order 关联的元数据。要检索 Order 生成的密钥,请参考 密钥用户指南。Order 元数据对于确定您的 Order 是否已正确处理非常有用。由于 Order 是异步处理的,您可以使用 Order 返回的元数据来验证密钥是否已成功创建。响应的参数在 此处 有更详细的说明。

检索所有 Orders

也可以检索项目的全部 Orders。

curl -H "X-Auth-Token: $TOKEN" -H 'Accept:application/json' https://:9311/v1/orders
{
    "orders": [
        {
            "created": "2015-10-15T18:15:10",
            "creator_id": "40540f978fbd45c1af18910e3e02b63f",
            "meta": {
                "algorithm": "AES",
                "bit_length": 256,
                "expiration": null,
                "mode": "cbc",
                "name": "secretname",
                "payload_content_type": "application/octet-stream"
            },
            "order_ref": "https://:9311/v1/orders/3a5c6748-44de-4c1c-9e54-085c3f79e942",
            "secret_ref": "https://:9311/v1/secrets/bcd1b853-edeb-4509-9f12-019b8c8dfb5f",
            "status": "ACTIVE",
            "sub_status": "Unknown",
            "sub_status_message": "Unknown",
            "type": "key",
            "updated": "2015-10-15T18:15:10"
        },
        {
            "created": "2015-10-15T18:51:35",
            "creator_id": "40540f978fbd45c1af18910e3e02b63f",
            "meta": {
                "algorithm": "AES",
                "bit_length": 256,
                "mode": "cbc",
                "expiration": null,
                "name": null
            },
            "order_ref": "https://:9311/v1/orders/d99ced51-ea7a-4c14-8e11-0dda0f49c5be",
            "secret_ref": "https://:9311/v1/secrets/abadd306-8235-4f6b-984a-cc48ad039def",
            "status": "ACTIVE",
            "sub_status": "Unknown",
            "sub_status_message": "Unknown",
            "type": "key",
            "updated": "2015-10-15T18:51:35"
        }
    ],
    "total": 2
}

您可以参考 orders 参数 部分的 Orders API 文档,以便优化您在 Orders 中的搜索。

删除 Order

也可以从 barbican 删除 Order。

curl -X DELETE -H "X-Auth-Token: $TOKEN" -H 'Accept:application/json' https://:9311/v1/orders/fbdd845f-4a5e-43e3-8f68-64e8f106c486

删除 Order 时不会返回任何内容。如果返回了内容,则很可能在删除 Order 时发生了错误。