方法: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=="
}