Skip to content

验证签名

使用签名中记录的历史密钥版本验证消息,签名不匹配时仍返回 HTTP 200 和 valid=false。

更新于 查看 Markdown
POST/api/v1/kms/keys/{key_id}/verify
使用 App Header 签名或 App Secret需要 unsealed

Path 参数

key_id必填

string

密钥 ID

示例:"019fb1b5-7bb6-7eaf-9bf0-a1b2c3d4e5f6"

Body 参数

message必填

string · sensitive

采用无填充 Base64URL 编码的原始消息

示例:"SGVsbG8sIHdvcmxkIQ"

signature必填

string · sensitive

签名接口返回的 qk:v<密钥版本>:<不透明载荷> 签名

示例:"qk:v2:<opaque-signature>"

成功响应

HTTP 200

操作成功

{
  "data": {
    "result": {
      "algorithm": "sm2",
      "key_version": 2,
      "valid": true
    }
  },
  "error": null,
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

失败响应

按 HTTP status 和 error.code 区分失败原因;响应始终使用统一 envelope。

HTTP 400 · invalid_request

请求参数或 JSON 请求体无效

{
  "data": null,
  "error": {
    "code": "invalid_request",
    "details": {},
    "message": "请求参数或 JSON 请求体无效"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 400 · kms_invalid_result

密文、签名或消息认证码格式无效

{
  "data": null,
  "error": {
    "code": "kms_invalid_result",
    "details": {},
    "message": "密文、签名或消息认证码格式无效"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 400 · kms_purpose_mismatch

密钥用途不支持该操作

{
  "data": null,
  "error": {
    "code": "kms_purpose_mismatch",
    "details": {},
    "message": "密钥用途不支持该操作"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 400 · not_initialized

系统尚未初始化

{
  "data": null,
  "error": {
    "code": "not_initialized",
    "details": {},
    "message": "系统尚未初始化"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 401 · replayed_request

签名请求的 nonce 已被使用

{
  "data": null,
  "error": {
    "code": "replayed_request",
    "details": {},
    "message": "签名请求的 nonce 已被使用"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 401 · unauthorized

App ID、App Secret 或签名无效,或者凭据已过期

{
  "data": null,
  "error": {
    "code": "unauthorized",
    "details": {},
    "message": "App ID、App Secret 或签名无效,或者凭据已过期"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 403 · forbidden

App 没有访问目标资源所需的权限

{
  "data": null,
  "error": {
    "code": "forbidden",
    "details": {},
    "message": "App 没有访问目标资源所需的权限"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 404 · kms_key_not_found

密钥不存在

{
  "data": null,
  "error": {
    "code": "kms_key_not_found",
    "details": {},
    "message": "密钥不存在"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 409 · kms_key_disabled

密钥已禁用

{
  "data": null,
  "error": {
    "code": "kms_key_disabled",
    "details": {},
    "message": "密钥已禁用"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 409 · kms_key_retired

密钥已退役

{
  "data": null,
  "error": {
    "code": "kms_key_retired",
    "details": {},
    "message": "密钥已退役"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 409 · kms_version_disallowed

结果引用的历史密钥版本已不允许读取

{
  "data": null,
  "error": {
    "code": "kms_version_disallowed",
    "details": {},
    "message": "结果引用的历史密钥版本已不允许读取"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 413 · kms_input_too_large

输入数据超过 KMS 限制

{
  "data": null,
  "error": {
    "code": "kms_input_too_large",
    "details": {},
    "message": "输入数据超过 KMS 限制"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 413 · request_body_too_large

请求体超过服务端限制

{
  "data": null,
  "error": {
    "code": "request_body_too_large",
    "details": {},
    "message": "请求体超过服务端限制"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 423 · sealed

系统处于封印状态

{
  "data": null,
  "error": {
    "code": "sealed",
    "details": {},
    "message": "系统处于封印状态"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 500 · internal_error

服务端无法完成请求

{
  "data": null,
  "error": {
    "code": "internal_error",
    "details": {},
    "message": "服务端无法完成请求"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 503 · crypto_unavailable

密码服务暂不可用

{
  "data": null,
  "error": {
    "code": "crypto_unavailable",
    "details": {},
    "message": "密码服务暂不可用"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 503 · leader_unavailable

高可用集群的 Leader 暂不可用

{
  "data": null,
  "error": {
    "code": "leader_unavailable",
    "details": {},
    "message": "高可用集群的 Leader 暂不可用"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}

HTTP 503 · maintenance_mode

系统处于维护模式

{
  "data": null,
  "error": {
    "code": "maintenance_mode",
    "details": {},
    "message": "系统处于维护模式"
  },
  "request_id": "019fb18d-6b45-7e2d-a3b4-c5d6e7f80910"
}
Navigation

Type to search…

↑↓ navigate↵ selectEsc close