روش: رمزگشایی کلید خصوصی

یک کلید خصوصیِ بسته‌بندی‌شده را باز می‌کند و سپس کلید رمزگذاری محتوا را که با کلید عمومی رمزگذاری شده است، رمزگشایی می‌کند.

درخواست HTTP

POST https:// KACLS_URL /privatekeydecrypt

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

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

هیچ کدام.

درخواست بدنه

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

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

string

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

authorization

string

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

algorithm

string

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

encrypted_data_encryption_key

string (UTF-8)

کلید رمزگذاری محتوای رمزگذاری شده با Base64 که با کلید عمومی مرتبط با کلید خصوصی رمزگذاری شده است. حداکثر اندازه: ۱ کیلوبایت.

rsa_oaep_label

string

اگر الگوریتم RSAES-OAEP باشد، برچسب L با کدگذاری Base64 در نظر گرفته می‌شود. اگر الگوریتم RSAES-OAEP نباشد، این فیلد نادیده گرفته می‌شود.

reason

string (UTF-8)

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

wrapped_private_key

string

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

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

بدنه پاسخ

در صورت موفقیت، این متد یک کلید رمزگذاری داده base64 را برمی‌گرداند.

اگر عملیات با شکست مواجه شود، یک پاسخ خطای ساختاریافته بازگردانده می‌شود.

نمایش JSON
{
  "data_encryption_key": string
}
فیلدها
data_encryption_key

string

یک کلید رمزگذاری داده با کدگذاری base64.

مثال

این مثال یک نمونه درخواست و پاسخ برای متد privatekeydecrypt ارائه می‌دهد.

درخواست

POST https://mykacls.example.org/v1/privatekeydecrypt

{
  "wrapped_private_key": "wHrlNOTI9mU6PBdqiq7EQA...",
  "encrypted_data_encryption_key": "dGVzdCB3cmFwcGVkIGRlaw...",
  "authorization": "eyJhbGciOi...",
  "authentication": "eyJhbGciOi...",
  "algorithm": "RSA/ECB/PKCS1Padding",
  "reason": "decrypt"
}

پاسخ

{
  "data_encryption_key": "akRQtv3nr+jUhcFL6JmKzB+WzUxbkkMyW5kQsqGUAFc="
}