تُزيل هذه الوظيفة التشفير عن مفتاح خاص ملفوف، ثم تُوقّع الملخّص الذي يقدّمه العميل.
طلب 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=="
}