الطريقة: Privatekeysign

يقوم بفك ضغط مفتاح خاص ثم توقيع الملخص الذي يقدمه العميل.

طلب HTTP

POST https://BASE_URL/privatekeysign

استبدِل BASE_URL بعنوان URL الأساسي.

مَعلمات المسار

بلا عُري

نص الطلب

يحتوي نص الطلب على بيانات بالبنية التالية:

تمثيل 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. راجِع الرموز المميّزة للتفويض.

algorithm

string

الخوارزمية التي تم استخدامها لتشفير مفتاح تشفير البيانات (DEK) في تشفير المغلف.

digest

string

ملخص الرسائل بترميز Base64. هو ملخص SignedAttributes بترميز DER. هذه القيمة غير مُضافة. الحد الأقصى للحجم: 128 مليار

rsa_pss_salt_length

integer

(اختياري) مقدار القيمة العشوائية المطلوب استخدامها، إذا كانت خوارزمية التوقيع RSASSA-PSS. إذا لم تكن خوارزمية التوقيع RSASSA-PSS، سيتم تجاهل هذا الحقل.

reason

string (UTF-8)

سلسلة JSON مرورية توفر سياقًا إضافيًا حول العملية. يجب تصحيح ملف JSON المقدَّم قبل عرضه. الحدّ الأقصى للحجم: 1 كيلوبايت

wrapped_private_key

string

هذا هو المفتاح الخاص الملفوف بترميز base64. الحدّ الأقصى للحجم: 8 كيلوبايت.

يرجع تنسيق المفتاح الخاص أو المفتاح الخاص الملفوف إلى تنفيذ خدمة قائمة التحكم في الوصول إلى المفتاح (KACLS). في البرنامج ومن جانب Gmail، يتم التعامل مع ذلك على أنّه كائن ثنائي كبير مبهم.

نص الاستجابة

في حال نجاح هذه الطريقة، ستعرض هذه الطريقة توقيعًا مُرمَّزًا بترميز 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=="
}