/// Initial message from the server, containing an authentication challenge. #[derive(Name, Educe)] #[educe(Debug)] pub(crate) struct ServerHello { /// Highest protocol version [`protobuf::ProtocolVersion`] the server supports. pub(crate) version: u32,
/// Ephemeral Server Key (ESK). pub(crate) ephemeral_server_key: PublicKey,
/// 32 byte random challenge #[educe(Debug(method(debug_slice_length)))] pub(crate) challenge: [u8; 32],
} impl SpecificPayloadDecoder for ServerHello { constTYPE: u8 = HandshakePayloadType::ServerHello as u8;
/// Parts of the server's configuration and the device slot state. #[derive(Name, Educe)] #[educe(Debug)] pubstruct ServerInfo { /// Clock delta between the server's time and the client's time. /// /// If the client's current timestamp deviates by more than 20 minutes, the client should disconnect and /// prompt the user to synchronise its clock. The user should also have an option to _connect anyway_ /// which should be cached for a reasonable amount of time. pub clock_delta: ClockDelta,
/// Maximum number of available device slots. pub max_device_slots: u32,
/// Device slot state of the client on the server. pub device_slot_state: Option<protobuf::DeviceSlotState>,
/// Device data shared among devices (`SharedDeviceData`), encrypted by `DGSDDK.secret` and prefixed with /// a random nonce. #[educe(Debug(method(debug_slice_length)))] pub encrypted_shared_device_data: Vec<u8>,
/// Amount of messages in the reflection queue that will now be sent to the device. If the client is /// up-to-date, the value will be 0. /// /// Note: The amount of messages in the reflection queue may increase at any time, so there is no /// guarantee that `ReflectionQueueDry` will be received after having received `reflection_queue_length` /// reflected messages. pub reflection_queue_length: u32,
} impl SpecificPayloadDecoder for ServerInfo { constTYPE: u8 = HandshakePayloadType::ServerInfo as u8;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.