Files
threshold/internal/bsr/proto/ssh/v1/ssh_chunks.proto
T
hashicorp-copywrite[bot]andJohan Brandhorst-Satzkorn 29da0bcb92 [COMPLIANCE] License changes (#3567)
* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Adding explicit MPL license for sub-package

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Updating the license from MPL to Business Source License

Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl.

* Update copyright file headers to BUS-1.1

* Rerun make gen

This will pick up the last of the license changes

* Revert "Rerun make gen"

This reverts commit dbe0968bffd92745d8663c6940debae098395a6b.

* Remove copywrite from generation script

The current version of copywrite is not sophisticated enough
to only apply the copywrite changes to certain subdirectories,
so to avoid accidentally relicensing our api and sdk modules,
we will stop running the copywrite script until such time
that it can do the right thing.

* License protobuf API as MPL

The protobuf API files are used to generate the SDK,
since we want the SDK to be MPL, the protobuf files
must also be MPL. This extends to all protobuf files
whose sources end up in the SDK directory, including:

- internal/proto/controller/api
- internal/proto/controller/custom_options
- internal/proto/plugin

It also includes the generated service directory in
internal/gen/controller/api/services, since they are
generated from the protobuf sources used for the SDK.

* Change website license file name

This makes the naming scheme consistent with the rest
of the repository.

* Add note on licensing to README

* Set copywrite license to BUSL

* Revert "Add note on licensing to README"

This reverts commit 4d865a91a7a4f11605f0dc4609355d7e3c3cfffe.

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
2023-08-11 10:31:53 -07:00

369 lines
11 KiB
Protocol Buffer

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
syntax = "proto3";
package ssh.v1;
// An UnknownRequest is an unrecognized SSH request. We'll record the type, want_reply, and payload
message UnknownRequest {
// The request type field
string request_type = 1;
// The want_reply field on the SSH request
bool want_reply = 2;
// The Payload field on the SSH request
bytes data = 3;
}
// Fields for the following SSH request protos were taken from
// https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-11
// A session is started by sending the following message.
message SessionRequest {
// The request type field. This should always be "session"
string request_type = 1;
// The sender channel
uint32 sender_channel = 2;
// The initial window size
uint32 initial_window_size = 3;
// The maximum packet size
uint32 maximum_packet_size = 4;
}
// X11 channels are opened with a channel open request. The resulting
// channels are independent of the session, and closing the session
// channel does not close the forwarded X11 channels.
message X11Request {
// The request type field. This should always be "x11"
string request_type = 1;
// The sender channel
uint32 sender_channel = 2;
// The initial window size
uint32 initial_window_size = 3;
// The maximum packet size
uint32 maximum_packet_size = 4;
// The originator address (e.g., "192.168.7.38")
string originator_address = 5;
// The originator port
uint32 originator_port = 6;
}
// When a connection comes to a port for which remote forwarding has
// been requested, a channel is opened to forward the port to the other
// side.
message ForwardedTCPIPRequest {
// The request type field. This should always be "forwarded-tcpip"
string request_type = 1;
// The sender channel
uint32 sender_channel = 2;
// The initial window size
uint32 initial_window_size = 3;
// The maximum packet size
uint32 maximum_packet_size = 4;
// The address that was connected
string address = 5;
// The port that was connected
uint32 port = 6;
// The originator ip address (e.g., "192.168.7.38")
string originator_ip_address = 7;
// The originator port
uint32 originator_port = 8;
}
// When a connection comes to a locally forwarded TCP/IP port, the
// following packet is sent to the other side.
message DirectTCPIPRequest {
// The request type field. This should always be "direct-tcpip"
string request_type = 1;
// The sender channel
uint32 sender_channel = 2;
// The initial window size
uint32 initial_window_size = 3;
// The maximum packet size
uint32 maximum_packet_size = 4;
// The host to connect
string host = 5;
// The port to connect
uint32 port = 6;
// The 'originator IP address' is the numeric IP address of the machine
// from where the connection request originates
string originator_ip_address = 7;
// The port on the host from where the connection originated.
uint32 originator_port = 8;
}
// Fields for the following SSH request protos were taken from
// https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-13
// A pseudo-terminal can be allocated for the session by sending the
// following message.
message PtyRequest {
// The request type field. This should always be "pty-req"
string request_type = 1;
// The want_reply field on the SSH request
bool want_reply = 2;
// TERM environment variable value (e.g., vt100)
string term_env_var = 3;
// Terminal width, characters (e.g., 80)
uint32 terminal_width_characters = 4;
// Terminal height, rows (e.g., 24)
uint32 terminal_height_rows = 5;
// Terminal width, pixels (e.g., 640)
uint32 terminal_width_pixels = 6;
// Terminal height, pixels (e.g., 480)
uint32 terminal_height_pixels = 7;
// Encoded terminal modes
bytes encoded_terminal_mode = 8;
}
// X11 forwarding may be requested for a session using the following message
message X11ForwardingRequest {
// The request type field. This should always be "x11-req"
string request_type = 1;
// The want_reply field on the SSH request
bool want_reply = 2;
// Single connection
bool single_connection = 3;
// X11 authentication protocol
string x11_authentication_protocol = 4;
// X11 authentication cookie
string x11_authentication_cookie = 5;
// X11 screen number
uint32 x11_screen_number = 6;
}
// Environment variables may be passed to the shell/command to be
// started later.
message EnvRequest {
// The request type field. This should always be "env"
string request_type = 1;
// The want_reply field on the SSH request
bool want_reply = 2;
// Variable name
string variable_name = 3;
// Variable value
string variable_value = 4;
}
// This message will request that the user's default shell (typically
// defined in /etc/passwd in UNIX systems) be started at the other end.
message ShellRequest {
// The request type field. This should always be "shell"
string request_type = 1;
// The want_reply field on the SSH request
bool want_reply = 2;
}
// This message will request that the server start the execution of the
// given command. The 'command' string may contain a path.
message ExecRequest {
// The request type field. This should always be "exec"
string request_type = 1;
// The want_reply field on the SSH request
bool want_reply = 2;
// The command to be executed
string command = 3;
}
// Execute a predefined subsystem. It is expected that
// these will include a general file transfer mechanism, and possibly
// other features.
message SubsystemRequest {
// The request type field. This should always be "subsystem"
string request_type = 1;
// The want_reply field on the SSH request
bool want_reply = 2;
// The predefined subsystem to execute
string subsystem_name = 3;
}
// When the window (terminal) size changes on the client side, it MAY
// send a message to the other side to inform it of the new dimensions.
message WindowChangeRequest {
// The request type field. This should always be "window-change"
string request_type = 1;
// The want_reply field on the SSH request. This should always be false.
bool want_reply = 2;
// Terminal width, columns
uint32 terminal_width_columns = 3;
// Terminal height, rows
uint32 terminal_height_rows = 4;
// Terminal width, pixels
uint32 terminal_width_pixels = 5;
// Terminal height, pixels
uint32 terminal_height_pixels = 6;
}
// The message below is used by the server to inform the client when it
// can or cannot perform flow control (control-S/control-Q processing).
// If 'client can do' is TRUE, the client is allowed to do flow control
// using control-S and control-Q
message XonXoffRequest {
// The request type field. This should always be "xon-xoff"
string request_type = 1;
// The want_reply field on the SSH request. This should always be false.
bool want_reply = 2;
// Client can do flow control
bool client_can_do = 3;
}
// A signal can be delivered to the remote process/service using the
// following message.
message SignalRequest {
// The request type field. This should always be "signal"
string request_type = 1;
// The want_reply field on the SSH request. This should always be false
bool want_reply = 2;
// Signal name, without the SIG prefix. The 'signal name' is one of the following (these are from [POSIX]).
// ABRT ALRM FPE HUP ILL INT KILL
// PIPE QUIT SEGV TERM USR1 USR2
string signal_name = 3;
}
// When the command running at the other end terminates, the following
// message can be sent to return the exit status of the command.
message ExitStatusRequest {
// The request type field. This should always be "exit-status"
string request_type = 1;
// The want_reply field on the SSH request. This should always be false.
bool want_reply = 2;
// Exit status of the command
uint32 exit_status = 3;
}
// The remote command may terminate violently due to a signal.
// Such a condition can be indicated by the following message. A zero
// 'exit_status' usually means that the command terminated successfully.
message ExitSignalRequest {
// The request type field. This should always be "exit-signal"
string request_type = 1;
// The want_reply field on the SSH request. This should always be false.
bool want_reply = 2;
// Signal name, without the SIG prefix. The 'signal name' is one of the following (these are from [POSIX]).
// ABRT ALRM FPE HUP ILL INT KILL
// PIPE QUIT SEGV TERM USR1 USR2
string signal_name = 3;
// Core dumped
bool core_dumped = 4;
// Error message in ISO-10646 UTF-8 encoding
string error_message = 5;
// Language tag from https://www.rfc-editor.org/rfc/rfc3066
string language_tag = 6;
}
// The following channel-specific request can be sent over a session
// channel to request that the remote host perform
// a BREAK operation.
message BreakRequest {
// The request type field. This should always be "break"
string request_type = 1;
// The want_reply field on the SSH request. This should always be false.
bool want_reply = 2;
// Break-length in milliseconds
uint32 break_length_ms = 3;
}
// Fields for the following SSH request protos were taken from
// https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-12
// A party need not explicitly request forwardings from its own end to
// the other direction. However, if it wishes that connections to a
// port on the other side be forwarded to the local side, it must
// explicitly request this.
message TCPIPForwardRequest {
// The request type field. This should always be "tcpip-forward"
string request_type = 1;
// The want_reply field on the SSH request. This should always be false.
bool want_reply = 2;
// Address to bind (e.g., "0.0.0.0") on which connections for forwarding
// are to be accepted
string address_to_bind = 3;
// Port number to bind on which connections for forwarding
// are to be accepted
uint32 port_to_bind = 4;
}
// A port forwarding can be canceled with the following message. Note
// that channel open requests may be received until a reply to this
// message is received.
message CancelTCPIPForwardRequest {
// The request type field. This should always be "cancel-tcpip-forward"
string request_type = 1;
// The want_reply field on the SSH request. This should always be false.
bool want_reply = 2;
// Address to bind (e.g., "0.0.0.0") on which connections for forwarding
// are to be accepted
string address_to_bind = 3;
// Port number to bind on which connections for forwarding
// are to be accepted
uint32 port_to_bind = 4;
}