// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";

package cobalt;

// A CobaltEncryptionKey carries a Cobalt encryption key (public key) along with
// metadata about the key.
message CobaltEncryptionKey {
  // Serialized key.
  bytes serialized_key = 1;

  // Unique index for this key. Used in EncryptedMessage.
  uint32 key_index = 2;

  enum KeyPurpose {
    UNSET = 0;
    SHUFFLER = 1;
    ANALYZER = 2;
  }

  // Encrypt messages for shuffler or analyzer?
  KeyPurpose purpose = 3;
}
