เมธอด: Privatekeysign
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
แกะคีย์ส่วนตัวที่ห่อไว้ แล้วลงนามในข้อมูลสรุปที่ไคลเอ็นต์ระบุ
คำขอ HTTP
POST https://KACLS_URL/privatekeysign
แทนที่ KACLS_URL
ด้วย URL ของบริการรายการควบคุมการเข้าถึงคีย์ (KACL)
พารามิเตอร์เส้นทาง
ไม่มี
เนื้อความของคำขอ
เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
การแสดง 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
(ไม่บังคับ) ความยาวของ Salt ที่จะใช้ หากอัลกอริทึมลายเซ็นคือ RSASSA-PSS หากอัลกอริทึมลายเซ็นไม่ใช่ RSASSA-PSS ระบบจะไม่สนใจฟิลด์นี้
|
reason |
string (UTF-8)
สตริง JSON แบบส่งผ่านที่ให้บริบทเพิ่มเติมเกี่ยวกับการดำเนินการ ควรล้างข้อมูล JSON ที่ระบุก่อนแสดง ขนาดสูงสุด: 1 KB
|
wrapped_private_key |
string
คีย์ส่วนตัวที่รวมไว้ซึ่งเข้ารหัส Base64 ขนาดสูงสุด: 8 KB
รูปแบบของคีย์ส่วนตัวหรือคีย์ส่วนตัวที่ห่อหุ้มขึ้นอยู่กับการติดตั้งใช้งานบริการรายการควบคุมการเข้าถึงคีย์ (KACLS) ทั้งในฝั่งไคลเอ็นต์และฝั่ง Gmail ระบบจะถือว่านี่เป็น Blob ที่ทึบแสง
|
เนื้อหาการตอบกลับ
หากสำเร็จ เมธอดนี้จะแสดงลายเซ็นที่เข้ารหัส 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=="
}
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-08-04 UTC
[null,null,["อัปเดตล่าสุด 2025-08-04 UTC"],[[["\u003cp\u003eUnwraps a wrapped private key and uses it to sign a provided digest.\u003c/p\u003e\n"],["\u003cp\u003eRequires authentication and authorization tokens for security.\u003c/p\u003e\n"],["\u003cp\u003eAccepts the signing algorithm, digest, salt length (for RSASSA-PSS), reason, and the wrapped private key in the request body.\u003c/p\u003e\n"],["\u003cp\u003eReturns a base64-encoded signature upon successful operation.\u003c/p\u003e\n"],["\u003cp\u003eProvides a structured error reply if the operation fails.\u003c/p\u003e\n"]]],["The `privatekeysign` method unwraps a private key and signs a client-provided digest. It requires a POST request to the `/privatekeysign` endpoint with a JSON body. The body includes `authentication`, `authorization`, `algorithm`, `digest`, `rsa_pss_salt_length` (optional), `reason`, and the `wrapped_private_key`. Upon success, a JSON response containing a base64-encoded `signature` is returned; otherwise, a structured error reply is returned.\n"],null,["# Method: privatekeysign\n\nUnwraps a wrapped private key and then signs the digest provided by the client.\n\n### HTTP request\n\n`POST https://`\u003cvar translate=\"no\"\u003eKACLS_URL\u003c/var\u003e`/privatekeysign`\n\nReplace \u003cvar translate=\"no\"\u003eKACLS_URL\u003c/var\u003e with the Key Access Control List\nService (KACLS) URL.\n\n### Path parameters\n\nNone.\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation ||\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|\n| ``` { \"authentication\": string, \"authorization\": string, \"algorithm\": string, \"digest\": string, \"rsa_pss_salt_length\": integer, \"reason\": string, \"wrapped_private_key\": string } ``` |\n\n| Fields ||\n|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `authentication` | `string` A JWT issued by the identity provider (IdP) asserting who the user is. See [authentication tokens](/workspace/cse/reference/authentication-tokens). |\n| `authorization` | `string` A JWT asserting that the user is allowed to unwrap a key for `resource_name`. See [authorization tokens](/workspace/cse/reference/authorization-tokens). |\n| `algorithm` | `string` The algorithm that was used to encrypt the Data Encryption Key (DEK) in envelope encryption. |\n| `digest` | `string` Base64-encoded message digest. The digest of the DER encoded `SignedAttributes`. This value is unpadded. Max size: 128B |\n| `rsa_pss_salt_length` | `integer` (Optional) The salt length to use, if the signature algorithm is RSASSA-PSS. If the signature algorithm is not RSASSA-PSS, this field is ignored. |\n| `reason` | `string (UTF-8)` A passthrough JSON string providing additional context about the operation. The JSON provided should be sanitized before being displayed. Max size: 1 KB. |\n| `wrapped_private_key` | `string` The base64-encoded wrapped private key. Max size: 8 KB. The format of the private key or the wrapped private key is up to the Key Access Control List Service (KACLS) implementation. On the client and on the Gmail side, this is treated as an opaque blob. |\n\n### Response body\n\nIf successful, this method returns a base64-encoded signature.\n\nIf the operation fails, a\n[structured error reply](/workspace/cse/reference/structured-errors)\nis returned.\n\n| JSON representation ||\n|---------------------------------|---|\n| ``` { \"signature\": string } ``` |\n\n| Fields ||\n|-------------|--------------------------------------|\n| `signature` | `string` A base64-encoded signature. |\n\n### Example\n\nThis example provides a sample request and response for the `privatekeysign`\nmethod.\n\n#### Request\n\n {\n \"wrapped_private_key\": \"wHrlNOTI9mU6PBdqiq7EQA...\",\n \"digest\": \"EOBc7nc+7JdIDeb0DVTHriBAbo/dfHFZJgeUhOyo67o=\",\n \"authorization\": \"eyJhbGciOi...\",\n \"authentication\": \"eyJhbGciOi...\",\n \"algorithm\": \"SHA256withRSA\",\n \"reason\": \"sign\"\n }\n\n#### Response\n\n {\n \"signature\": \"LpyCSy5ddy82PIp/87JKaMF4Jmt1KdrbfT1iqpB7uhVd3OwZiu+oq8kxIzB7Lr0iX4aOcxM6HiUyMrGP2PG8x0HkpykbUKQxBVcfm6SLdsqigT9ho5RYw20M6ZXNWVRetFSleKex4SRilTRny38e2ju/lUy0KDaCt1hDUT89nLZ1wsO3D1F3xk8J7clXv5fe7GPRd1ojo82Ny0iyVO7y7h1lh2PACHUFXOMzsdURYFCnxhKAsadccCxpCxKh5x8p78PdoenwY1tnT3/X4O/4LAGfT4fo98Frxy/xtI49WDRNZi6fsL6BQT4vS/WFkybBX9tXaenCqlRBDyZSFhatPQ==\"\n }"]]