يقوم بفك ضغط مفتاح خاص ثم توقيع الملخص الذي يقدمه العميل.
طلب 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 |
ملف JWT صادر عن موفِّر الهوية (IdP) لتأكيد هوية المستخدم. راجِع الرموز المميزة للمصادقة. |
authorization |
يشير رمز JWT إلى أنّه يُسمح للمستخدم بفتح مفتاح لـ |
algorithm |
الخوارزمية التي تم استخدامها لتشفير مفتاح تشفير البيانات (DEK) في تشفير المغلف. |
digest |
ملخص الرسائل بترميز Base64. هو ملخص |
rsa_pss_salt_length |
(اختياري) مقدار القيمة العشوائية المطلوب استخدامها، إذا كانت خوارزمية التوقيع RSASSA-PSS. إذا لم تكن خوارزمية التوقيع RSASSA-PSS، سيتم تجاهل هذا الحقل. |
reason |
سلسلة JSON مرورية توفر سياقًا إضافيًا حول العملية. يجب تصحيح ملف JSON المقدَّم قبل عرضه. الحدّ الأقصى للحجم: 1 كيلوبايت |
wrapped_private_key |
هذا هو المفتاح الخاص الملفوف بترميز base64. الحدّ الأقصى للحجم: 8 كيلوبايت. يرجع تنسيق المفتاح الخاص أو المفتاح الخاص الملفوف إلى تنفيذ خدمة قائمة التحكم في الوصول إلى المفتاح (KACLS). في البرنامج ومن جانب Gmail، يتم التعامل مع ذلك على أنّه كائن ثنائي كبير مبهم. |
نص الاستجابة
في حال نجاح هذه الطريقة، ستعرض هذه الطريقة توقيعًا مُرمَّزًا بترميز base64.
إذا فشلت العملية، فسيتم الردّ على الأخطاء المنظَّمة .
تمثيل JSON | |
---|---|
{ "signature": string } |
الحقول | |
---|---|
signature |
توقيع بترميز 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=="
}