方法:privatekeysign

对封装的私钥进行解封,然后对客户端提供的摘要进行签名。

HTTP 请求

POST https://BASE_URL/privatekeysign

BASE_URL 替换为基准网址。

路径参数

无。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "authentication": string,
  "authorization": string,
  "algorithm": string,
  "digest": string,
  "rsa_pss_salt_length": integer,
  "reason": string,
  "wrapped_private_key": string
}
字段
authentication

string

由身份提供方 (IdP) 颁发并声明用户身份的 JWT。请参阅身份验证令牌

authorization

string

一个 JWT,断言允许用户解封 resource_name 的密钥。请参阅授权令牌

algorithm

string

用于对信封加密中的数据加密密钥 (DEK) 进行加密的算法。

digest

string

Base64 编码的消息摘要。DER 编码的 SignedAttributes 的摘要。此值未填充。大小上限:128B

rsa_pss_salt_length

integer

(可选)签名算法为 RSASSA-PSS 时使用的盐长度。如果签名算法不是 RSASSA-PSS,则忽略此字段。

reason

string (UTF-8)

提供操作的其他上下文的直通式 JSON 字符串。提供的 JSON 应在显示之前进行清理。大小上限:1 KB。

wrapped_private_key

string

以 base64 编码的封装私钥。大小上限:8 KB。

私钥或封装私钥的格式取决于密钥访问控制列表服务 (KACLS) 实现。在客户端和 Gmail 端,系统会将这视为不透明 blob。

响应正文

如果成功,此方法将返回 base64 编码的签名。

如果操作失败, 结构化错误回复

JSON 表示法
{
  "signature": string
}
字段
signature

string

采用 base64 编码的签名。

示例

此示例提供了 privatekeysign 的示例请求和响应 方法。

请求

{
  "wrapped_private_key": "wHrlNOTI9mU6PBdqiq7EQA...",
  "digest": "EOBc7nc+7JdIDeb0DVTHriBAbo/dfHFZJgeUhOyo67o=",
  "authorization": "eyJhbGciOi...",
  "authentication": "eyJhbGciOi...",
  "algorithm": "SHA256withRSA",
  "reason": "sign"
}

响应

{
  "signature": "LpyCSy5ddy82PIp/87JKaMF4Jmt1KdrbfT1iqpB7uhVd3OwZiu+oq8kxIzB7Lr0iX4aOcxM6HiUyMrGP2PG8x0HkpykbUKQxBVcfm6SLdsqigT9ho5RYw20M6ZXNWVRetFSleKex4SRilTRny38e2ju/lUy0KDaCt1hDUT89nLZ1wsO3D1F3xk8J7clXv5fe7GPRd1ojo82Ny0iyVO7y7h1lh2PACHUFXOMzsdURYFCnxhKAsadccCxpCxKh5x8p78PdoenwY1tnT3/X4O/4LAGfT4fo98Frxy/xtI49WDRNZi6fsL6BQT4vS/WFkybBX9tXaenCqlRBDyZSFhatPQ=="
}