روش: privatekeysign

یک کلید خصوصیِ بسته‌بندی‌شده را باز می‌کند و سپس خلاصه ارائه‌شده توسط کلاینت را امضا می‌کند.

درخواست HTTP

POST https:// KACLS_URL /privatekeysign

KACLS_URL با URL سرویس فهرست کنترل دسترسی کلیدی (KACLS) جایگزین کنید.

پارامترهای مسیر

هیچ کدام.

درخواست بدنه

بدنه درخواست شامل داده‌هایی با ساختار زیر است:

نمایش JSON
{
  "authentication": string,
  "authorization": string,
  "algorithm": string,
  "digest": string,
  "rsa_pss_salt_length": integer,
  "reason": string,
  "wrapped_private_key": string
}
فیلدها
authentication

string

یک JWT که توسط ارائه دهنده هویت (IdP) صادر شده و هویت کاربر را تأیید می‌کند. به توکن‌های احراز هویت مراجعه کنید.

authorization

string

یک JWT که ادعا می‌کند کاربر مجاز به باز کردن کلید resource_name است. به authorization tokens مراجعه کنید.

algorithm

string

الگوریتمی که برای رمزگذاری کلید رمزگذاری داده‌ها (DEK) در رمزگذاری پاکت استفاده شده است.

digest

string

خلاصه پیام کدگذاری شده با Base64. خلاصه SignedAttributes کدگذاری شده با DER. این مقدار بدون پدگذاری است. حداکثر اندازه: 128 بایت

rsa_pss_salt_length

integer

(اختیاری) طول نمک مورد استفاده، اگر الگوریتم امضا RSASSA-PSS باشد. اگر الگوریتم امضا RSASSA-PSS نباشد، این فیلد نادیده گرفته می‌شود.

reason

string (UTF-8)

یک رشته JSON عبوری که زمینه بیشتری در مورد عملیات ارائه می‌دهد. JSON ارائه شده باید قبل از نمایش، پاکسازی شود. حداکثر اندازه: ۱ کیلوبایت.

wrapped_private_key

string

کلید خصوصی رمزگذاری شده با base64. حداکثر اندازه: ۸ کیلوبایت.

قالب کلید خصوصی یا کلید خصوصیِ بسته‌بندی‌شده به پیاده‌سازی سرویس فهرست کنترل دسترسی به کلید (KACLS) بستگی دارد. در سمت کلاینت و در سمت جیمیل، این به عنوان یک توده‌ی مات در نظر گرفته می‌شود.

بدنه پاسخ

در صورت موفقیت، این متد یک امضای کدگذاری شده با 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=="
}