syntax = "proto3"; package io.intoto; import "google/protobuf/struct.proto"; // An authenticated message of arbitrary type. message Envelope { // Message to be signed. (In JSON, this is encoded as base64.) // REQUIRED. bytes payload = 1; // String unambiguously identifying how to interpret payload. // REQUIRED. string payloadType = 2; // Signature over: // PAE(type, payload) // Where PAE is defined as: // PAE(type, payload) = "DSSEv1" + SP + LEN(type) + SP + type + SP + LEN(payload) + SP + payload // + = concatenation // SP = ASCII space [0x20] // "DSSEv1" = ASCII [0x44, 0x53, 0x53, 0x45, 0x76, 0x31] // LEN(s) = ASCII decimal encoding of the byte length of s, with no leading zeros // REQUIRED (length >= 1). repeated Signature signatures = 3; } message Signature { // Signature itself. (In JSON, this is encoded as base64.) // REQUIRED. bytes sig = 1; // *Unauthenticated* hint identifying which public key was used. // OPTIONAL. string keyid = 2; // *Unauthenticated* field that can record additional information pertaining // to the signature. // OPTIONAL. Extension extension = 3; } message Extension { // Unambiguously identifies how to interpret extension fields. // REQUIRED. string kind = 1; // Extension fields. // REQUIRED. google.protobuf.Struct ext = 2; }