Méthode: privatekeysign
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Déchiffre une clé privée chiffrée, puis signe le condensé fourni par le client.
Requête HTTP
POST https://KACLS_URL/privatekeysign
Remplacez KACLS_URL
par l'URL du service de liste de contrôle d'accès aux clés (KACLS).
Paramètres de chemin d'accès
Aucune.
Corps de la requête
Le corps de la requête contient des données présentant la structure suivante :
Représentation JSON |
{
"authentication": string,
"authorization": string,
"algorithm": string,
"digest": string,
"rsa_pss_salt_length": integer,
"reason": string,
"wrapped_private_key": string
}
|
Champs |
authentication |
string
Jeton JWT émis par le fournisseur d'identité (IdP) qui indique l'identité de l'utilisateur. Consultez Jetons d'authentification.
|
authorization |
string
JWT affirmant que l'utilisateur est autorisé à déchiffrer une clé pour resource_name . Consultez Jetons d'autorisation.
|
algorithm |
string
Algorithme utilisé pour chiffrer la clé de chiffrement des données (DEK) dans le chiffrement encapsulé.
|
digest |
string
Digest du message encodé en base64. Digest du SignedAttributes encodé DER. Cette valeur n'est pas complétée. Taille maximale : 128 octets
|
rsa_pss_salt_length |
integer
(Facultatif) Longueur du sel à utiliser si l'algorithme de signature est RSASSA-PSS. Si l'algorithme de signature n'est pas RSASSA-PSS, ce champ est ignoré.
|
reason |
string (UTF-8)
Chaîne JSON directe fournissant un contexte supplémentaire sur l'opération. Le JSON fourni doit être nettoyé avant d'être affiché. Taille maximale : 1 Ko.
|
wrapped_private_key |
string
Clé privée encapsulée encodée en base64. Taille maximale : 8 Ko.
Le format de la clé privée ou de la clé privée encapsulée dépend de l'implémentation du service de liste de contrôle d'accès aux clés (KACLS). Côté client et côté Gmail, il est traité comme un blob opaque.
|
Corps de la réponse
Si la requête aboutit, cette méthode renvoie une signature encodée en base64.
Si l'opération échoue, une réponse d'erreur structurée est renvoyée.
Représentation JSON |
{
"signature": string
}
|
Champs |
signature |
string
Signature encodée en base64.
|
Exemple
Cet exemple fournit un exemple de requête et de réponse pour la méthode privatekeysign
.
Requête
{
"wrapped_private_key": "wHrlNOTI9mU6PBdqiq7EQA...",
"digest": "EOBc7nc+7JdIDeb0DVTHriBAbo/dfHFZJgeUhOyo67o=",
"authorization": "eyJhbGciOi...",
"authentication": "eyJhbGciOi...",
"algorithm": "SHA256withRSA",
"reason": "sign"
}
Réponse
{
"signature": "LpyCSy5ddy82PIp/87JKaMF4Jmt1KdrbfT1iqpB7uhVd3OwZiu+oq8kxIzB7Lr0iX4aOcxM6HiUyMrGP2PG8x0HkpykbUKQxBVcfm6SLdsqigT9ho5RYw20M6ZXNWVRetFSleKex4SRilTRny38e2ju/lUy0KDaCt1hDUT89nLZ1wsO3D1F3xk8J7clXv5fe7GPRd1ojo82Ny0iyVO7y7h1lh2PACHUFXOMzsdURYFCnxhKAsadccCxpCxKh5x8p78PdoenwY1tnT3/X4O/4LAGfT4fo98Frxy/xtI49WDRNZi6fsL6BQT4vS/WFkybBX9tXaenCqlRBDyZSFhatPQ=="
}
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/04 (UTC).
[null,null,["Dernière mise à jour le 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 }"]]