| Index: extensions/common/api/cast_channel/cast_channel.proto
|
| diff --git a/extensions/common/api/cast_channel/cast_channel.proto b/extensions/common/api/cast_channel/cast_channel.proto
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..098ecb74dacbaaa5c4f8016ad627acb5a2a278b7
|
| --- /dev/null
|
| +++ b/extensions/common/api/cast_channel/cast_channel.proto
|
| @@ -0,0 +1,101 @@
|
| +// Copyright 2014 The Chromium 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 = "proto2";
|
| +
|
| +option optimize_for = LITE_RUNTIME;
|
| +
|
| +package extensions.api.cast_channel;
|
| +
|
| +message CastMessage {
|
| + // Always pass a version of the protocol for future compatibility
|
| + // requirements.
|
| + enum ProtocolVersion {
|
| + CASTV2_1_0 = 0;
|
| + }
|
| + required ProtocolVersion protocol_version = 1;
|
| +
|
| + // source and destination ids identify the origin and destination of the
|
| + // message. They are used to route messages between endpoints that share a
|
| + // device-to-device channel.
|
| + //
|
| + // For messages between applications:
|
| + // - The sender application id is a unique identifier generated on behalf of
|
| + // the sender application.
|
| + // - The receiver id is always the the session id for the application.
|
| + //
|
| + // For messages to or from the sender or receiver platform, the special ids
|
| + // 'sender-0' and 'receiver-0' can be used.
|
| + //
|
| + // For messages intended for all endpoints using a given channel, the
|
| + // wildcard destination_id '*' can be used.
|
| + required string source_id = 2;
|
| + required string destination_id = 3;
|
| +
|
| + // This is the core multiplexing key. All messages are sent on a namespace
|
| + // and endpoints sharing a channel listen on one or more namespaces. The
|
| + // namespace defines the protocol and semantics of the message.
|
| + required string namespace = 4;
|
| +
|
| + // Encoding and payload info follows.
|
| +
|
| + // What type of data do we have in this message.
|
| + enum PayloadType {
|
| + STRING = 0;
|
| + BINARY = 1;
|
| + }
|
| + required PayloadType payload_type = 5;
|
| +
|
| + // Depending on payload_type, exactly one of the following optional fields
|
| + // will always be set.
|
| + optional string payload_utf8 = 6;
|
| + optional bytes payload_binary = 7;
|
| +}
|
| +
|
| +enum SignatureAlgorithm {
|
| + UNSPECIFIED = 0;
|
| + RSASSA_PKCS1v15 = 1;
|
| + RSASSA_PSS = 2;
|
| +}
|
| +
|
| +enum HashAlgorithm {
|
| + SHA1 = 0;
|
| + SHA256 = 1;
|
| +}
|
| +
|
| +// Messages for authentication protocol between a sender and a receiver.
|
| +message AuthChallenge {
|
| + optional SignatureAlgorithm signature_algorithm = 1
|
| + [default = RSASSA_PKCS1v15];
|
| + optional bytes sender_nonce = 2;
|
| + optional HashAlgorithm hash_algorithm = 3 [default = SHA1];
|
| +}
|
| +
|
| +message AuthResponse {
|
| + required bytes signature = 1;
|
| + required bytes client_auth_certificate = 2;
|
| + repeated bytes intermediate_certificate = 3;
|
| + optional SignatureAlgorithm signature_algorithm = 4
|
| + [default = RSASSA_PKCS1v15];
|
| + optional bytes sender_nonce = 5;
|
| + optional HashAlgorithm hash_algorithm = 6 [default = SHA1];
|
| + optional bytes crl = 7;
|
| +}
|
| +
|
| +message AuthError {
|
| + enum ErrorType {
|
| + INTERNAL_ERROR = 0;
|
| + NO_TLS = 1; // The underlying connection is not TLS
|
| + SIGNATURE_ALGORITHM_UNAVAILABLE = 2;
|
| + }
|
| + required ErrorType error_type = 1;
|
| +}
|
| +
|
| +message DeviceAuthMessage {
|
| + // Request fields
|
| + optional AuthChallenge challenge = 1;
|
| + // Response fields
|
| + optional AuthResponse response = 2;
|
| + optional AuthError error = 3;
|
| +}
|
|
|