Resource: Proposal
Represents a cryptographic signing Proposal.
| JSON representation |
|---|
{ "name": string, "digest": string, "state": enum ( |
| Fields | |
|---|---|
name |
Identifier. The unique server-assigned resource name of the Proposal. Format: projects/{project}/locations/{location}/instances/{instance}/mpc/keyRings/{keyRing}/keys/{key}/proposals/{proposal} |
digest |
Required. Immutable. The digest (hash) of the message to be signed. This must be provided when the proposal is created. A base64-encoded string. |
state |
Output only. The current state of the proposal. |
finalSignature |
Output only. The final cryptographic signature, populated only after the proposal reaches the SUCCEEDED state. A base64-encoded string. |
createTime |
Output only. The timestamp when the proposal resource was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
expireTime |
Output only. The timestamp when the proposal is considered expired. If the proposal does not reach the READY state by this time, it may transition to FAILED. This is set by the server upon creation. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
recordedVotes[] |
Output only. The list of participant votes recorded for this proposal. |
policyApproverSignature |
Required. Immutable. The signature from the Policy Approver that authorized the creation of this proposal. This is persisted for audit purposes and later propagated for multi-stage verification across task execution. A base64-encoded string. |
keyVersion |
Required. Immutable. The resource name of the Key version used for this signing proposal. Format: projects/{project}/locations/{location}/instances/{instance}/mpc/keyRings/{keyRing}/keys/{key}/versions/{version} |
requiredThreshold |
Output only. The number of assents required for this proposal to become READY. This is determined by the Key's threshold at the time of proposal creation. |
updateTime |
Output only. The timestamp when the proposal resource was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
initiator |
Required. Immutable. The resource name of the Participant who initiated this proposal. Format: projects/{project}/locations/{location}/instances/{instance}/mpc/signers/{signer} |
errorMessage |
Output only. An error message detailing why the proposal failed. Populated only when the state transitions to FAILED. |
State
The state of the proposal.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Default value. This value is unused. |
PENDING_ASSENT |
The proposal has been created and authorized by a Policy Approver but has not yet received the required threshold of participant assents. The system is waiting for participants to provide their cryptographic consent via the proposals.recordParticipantDecision method. |
IN_PROGRESS |
The signing ceremony is actively being orchestrated. This state indicates that the system has begun the Multi-party Compute. |
SUCCEEDED |
The signing ceremony has successfully completed. The final, aggregated digital signature has been generated and is available. This is a terminal success state. |
FAILED |
The proposal failed to complete. This can occur due to a timeout waiting for assents, an unrecoverable error during the signing ceremony, or explicit rejection by participants. This is a terminal failure state. |
ParticipantVote
Metadata about a participant's vote on this proposal.
| JSON representation |
|---|
{
"participant": string,
"voteTime": string,
"decision": enum ( |
| Fields | |
|---|---|
participant |
Output only. The resource name of the Participant who cast this vote. Format: projects/{project}/locations/{location}/instances/{instance}/mpc/signers/{signer} |
voteTime |
Output only. The timestamp when the vote was recorded. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
decision |
Output only. The decision made by the participant. |
signature |
Output only. The signature provided by the participant, an attestation of their decision. A base64-encoded string. |
signedPayload |
Output only. The exact payload that was signed by the participant, used for auditing. A base64-encoded string. |
Decision
The decision made by a participant regarding the proposal.
| Enums | |
|---|---|
DECISION_UNSPECIFIED |
Default value. This value is unused. |
ASSENT |
The participant approves the proposal. |
DISSENT |
The participant rejects the proposal. |
Methods |
|
|---|---|
|
Initiates a Signing Proposal for a given Key. |
|
Retrieves the final assembled signature for a completed Proposal. |
|
Gets details of a single Proposal. |
|
Lists Proposals for a given Key. |
|
Submits a cryptographic signature from a key participant, recording their assent (or rejection) for the proposal. |