endorsement.proto

syntax = "proto3";

package pub.odf.identity.v1;


enum SigningCurve {
  UNSIGNED = 0;
  SECP256K1 = 1;
  ED25519 = 2;
}


// Endorse a public key of another user
message Endorsement {

  // UNIX timestamp of this endorsement
  uint32 timestamp = 1;

  // UNIX timestamp of expiration of endorsement
  uint32 expires = 7;

  // Elliptic curve used to sign the public key
  SigningCurve curve = 2;

  // Random data prepended to the data being signed
  bytes salt = 3;

  // The 33 bytes compressed public key being endorsed
  bytes public_key = 4;

  // The signature of the above public key, about 70 bytes
  bytes signature = 5;

  // The transaction ID/hash of the transaction giving the signer
  // the authority to endorse
  bytes authority_txid = 6;
}