Uses of Enum Class
io.github.mahmoudimus.quic.QuicVersion
Packages that use QuicVersion
Package
Description
A dependency-free QUIC transport (RFC 9000, 9001, 9002, 9221, 9369).
The sans-I/O QUIC connection and endpoint, ported from quinn-proto: the
Connection state machine (handshake, packet assembly and
processing, key updates, closing and draining), the Endpoint that routes datagrams and answers with Version
Negotiation, Retry and stateless resets, their configurations (TransportConfig, ServerConfig, ClientConfig, EndpointConfig), and the building blocks they are made of:
range sets (RangeSet), reassembly of received data
(Assembler), buffering of sent data (SendBuffer), streams and flow control (StreamsState), packet number spaces and ACK generation
(PacketSpace), loss detection (Recovery), pacing (Pacer), path MTU discovery (MtuDiscovery) and timers (TimerTable).QUIC packet protection (RFC 9001 section 5): AEAD payload keys, header protection keys, Initial
keys per version, key updates and the Retry integrity tag.
QUIC packets (RFC 9000 section 17, RFC 9369): header encoding and partial decoding, packet
number truncation and recovery, coalesced datagrams, and protecting and unprotecting whole
packets in place.
-
Uses of QuicVersion in io.github.mahmoudimus.quic
Methods in io.github.mahmoudimus.quic that return QuicVersionModifier and TypeMethodDescriptionstatic QuicVersionQuicVersion.forWireValue(int wireValue) The version with a wire number.static QuicVersionReturns the enum constant of this class with the specified name.static QuicVersion[]QuicVersion.values()Returns an array containing the constants of this enum class, in the order they are declared.QuicConnection.version()The QUIC version in use. -
Uses of QuicVersion in io.github.mahmoudimus.quic.connection
Methods in io.github.mahmoudimus.quic.connection that return QuicVersionModifier and TypeMethodDescriptionClientConfig.version()The QUIC version connections start with.Connection.version()The QUIC version in use.Methods in io.github.mahmoudimus.quic.connection that return types with arguments of type QuicVersionModifier and TypeMethodDescriptionEndpointConfig.supportedVersions()The QUIC versions accepted, in preference order.Methods in io.github.mahmoudimus.quic.connection with parameters of type QuicVersionModifier and TypeMethodDescriptionEndpointConfig.Builder.supportedVersions(QuicVersion... versions) The QUIC versions to accept.ClientConfig.Builder.version(QuicVersion version) The QUIC version to use, version 1 by default. -
Uses of QuicVersion in io.github.mahmoudimus.quic.crypto
Methods in io.github.mahmoudimus.quic.crypto with parameters of type QuicVersionModifier and TypeMethodDescriptionstatic DirectionalKeysDirectionalKeys.fromSecret(CipherSuite suite, byte[] secret, QuicVersion version) Derives both keys from one traffic secret (RFC 9001 section 5.1).static HeaderKeyHeaderKey.fromSecret(CipherSuite suite, byte[] secret, QuicVersion version) Derives a key from a traffic secret with the version's"quic hp"label.static PacketKeyPacketKey.fromSecret(CipherSuite suite, byte[] secret, QuicVersion version) Derives a key from a traffic secret with the version's"quic key"and"quic iv"labels (RFC 9001 section 5.1).static KeysKeys.fromSecrets(Secrets secrets, boolean isServer, QuicVersion version) Keys from the traffic secrets the TLS handshake produced.static KeysKeys.initial(QuicVersion version, ConnectionId clientDestinationId, boolean isServer) The Initial keys for a client's first Destination Connection ID.static SecretsKeys.initialSecrets(QuicVersion version, ConnectionId clientDestinationId) The Initial secrets for a client's first Destination Connection ID (RFC 9001 section 5.2): HKDF-Extract with the version's salt, then the"client in"and"server in"labels.static byte[]Keys.nextSecret(CipherSuite suite, byte[] secret, QuicVersion version) The next secret of one direction after a key update.static SecretsKeys.nextSecrets(Secrets secrets, QuicVersion version) The secrets after a key update: each secret expanded with the version's"quic ku"label to the hash length (RFC 9001 section 6.1).static byte[]RetryIntegrity.tag(QuicVersion version, ConnectionId originalDestinationId, byte[] packet, int offset, int length) Computes the tag of a Retry packet held in an array.static byte[]RetryIntegrity.tag(QuicVersion version, ConnectionId originalDestinationId, ByteBuffer retryWithoutTag) Computes the tag of a Retry packet.Keys.update(Secrets nextSecrets, boolean isServer, QuicVersion version) The keys of the next key phase: new packet keys from the next secrets, with these header keys, which a key update does not change (RFC 9001 section 6).static booleanRetryIntegrity.verify(QuicVersion version, ConnectionId originalDestinationId, ByteBuffer retryPacket) Checks the tag at the end of a received Retry packet, in constant time. -
Uses of QuicVersion in io.github.mahmoudimus.quic.packet
Methods in io.github.mahmoudimus.quic.packet that return QuicVersionModifier and TypeMethodDescriptionPacketHeader.Handshake.version()Returns the value of theversionrecord component.PacketHeader.Initial.version()Returns the value of theversionrecord component.PacketHeader.Retry.version()Returns the value of theversionrecord component.PacketHeader.ZeroRtt.version()Returns the value of theversionrecord component.ProtectedPacket.version()The QUIC version of a long header.Methods in io.github.mahmoudimus.quic.packet with parameters of type QuicVersionModifier and TypeMethodDescriptionstatic PacketHeader.RetryPacketHeader.Retry.create(QuicVersion version, ConnectionId destinationId, ConnectionId sourceId, byte[] token, ConnectionId originalDestinationId) A Retry packet with its integrity tag computed for the client's original Destination Connection ID.static PacketTypePacketType.fromLongTypeBits(QuicVersion version, int bits) The long header type for two type bits in a version.intPacketType.longTypeBits(QuicVersion version) The two Long Packet Type bits of this type in a version.Constructors in io.github.mahmoudimus.quic.packet with parameters of type QuicVersionModifierConstructorDescriptionHandshake(QuicVersion version, ConnectionId destinationId, ConnectionId sourceId, long packetNumber, int packetNumberLength) A Handshake header.Initial(QuicVersion version, ConnectionId destinationId, ConnectionId sourceId, byte[] token, long packetNumber, int packetNumberLength) An Initial header.Retry(QuicVersion version, ConnectionId destinationId, ConnectionId sourceId, byte[] token, byte[] integrityTag) A Retry packet.ZeroRtt(QuicVersion version, ConnectionId destinationId, ConnectionId sourceId, long packetNumber, int packetNumberLength) A 0-RTT header.