public static PacketPayload.CursorWritingContext StartWriting(MemoryCursor cursor, PacketVersion version, PacketConnectionId destinationConnectionId, PacketConnectionId sourceConnectionId, PacketNumber largestAcknowledgedPacketNumber, PacketNumber packetNumber) { var startOffset = cursor.AsOffset(); var firstByte = new PacketFirstByte() .SetHandshake() .SetMaxPacketNumberLength(); firstByte.Write(cursor); version.WriteBytes(cursor); destinationConnectionId.WriteBytes(cursor); sourceConnectionId.WriteBytes(cursor); var context = PacketPayload.StartPacketWriting(cursor, startOffset); var packetNumberBytes = firstByte.SlicePacketNumberBytes(cursor); packetNumber .EncodeByLargestAcknowledged(largestAcknowledgedPacketNumber) .Fill(packetNumberBytes.Span); return(context); }
public static PacketPayload.CursorWritingContext StartWriting(MemoryCursor cursor, PacketVersion version, PacketConnectionId destinationConnectionId, PacketConnectionId sourceConnectionId, PacketNumber packetNumber, PacketToken token) { var startOffset = cursor.AsOffset(); var firstByte = new PacketFirstByte() .SetInitial() .SetMaxPacketNumberLength(); firstByte.Write(cursor); version.WriteBytes(cursor); destinationConnectionId.WriteBytes(cursor); sourceConnectionId.WriteBytes(cursor); token.WriteBytes(cursor); var context = PacketPayload.StartPacketWriting(cursor, startOffset); var packetNumberBytes = firstByte.SlicePacketNumberBytes(cursor); packetNumber.Fill(packetNumberBytes.Span); return(context); }
public static PacketPayload.LongProtectedWritingContext StartProtectedWriting(IAead aead, ICipher cipher, MemoryCursor cursor, PacketVersion version, PacketConnectionId destinationConnectionId, PacketConnectionId sourceConnectionId, PacketNumber packetNumber, PacketNumber largestAcknowledgedPacketNumber) { var startPacketOffset = cursor.AsOffset(); var firstByte = new PacketFirstByte() .SetHandshake() .SetMaxPacketNumberLength(); firstByte.Write(cursor); version.WriteBytes(cursor); destinationConnectionId.WriteBytes(cursor); sourceConnectionId.WriteBytes(cursor); return(PacketPayload.StartLongProtectedPacketWriting(cursor, aead, cipher, startPacketOffset, firstByte, packetNumber, largestAcknowledgedPacketNumber)); }