mirror of
https://github.com/refraction-networking/uquic.git
synced 2025-04-05 05:07:36 +03:00
The params negotiator was just keeping track of the value set in the quic.Config. The max flow control increments are not subject to negotiation, but an independent implementation decision of every peer.
33 lines
1 KiB
Go
33 lines
1 KiB
Go
package handshake
|
|
|
|
import (
|
|
"io"
|
|
"time"
|
|
|
|
"github.com/lucas-clemente/quic-go/internal/protocol"
|
|
)
|
|
|
|
// Sealer seals a packet
|
|
type Sealer interface {
|
|
Seal(dst, src []byte, packetNumber protocol.PacketNumber, associatedData []byte) []byte
|
|
Overhead() int
|
|
}
|
|
|
|
// CryptoSetup is a crypto setup
|
|
type CryptoSetup interface {
|
|
Open(dst, src []byte, packetNumber protocol.PacketNumber, associatedData []byte) ([]byte, protocol.EncryptionLevel, error)
|
|
HandleCryptoStream(io.ReadWriter) error
|
|
// TODO: clean up this interface
|
|
DiversificationNonce() []byte // only needed for cryptoSetupServer
|
|
SetDiversificationNonce([]byte) // only needed for cryptoSetupClient
|
|
|
|
GetSealer() (protocol.EncryptionLevel, Sealer)
|
|
GetSealerWithEncryptionLevel(protocol.EncryptionLevel) (Sealer, error)
|
|
GetSealerForCryptoStream() (protocol.EncryptionLevel, Sealer)
|
|
}
|
|
|
|
// TransportParameters are parameters sent to the peer during the handshake
|
|
type TransportParameters struct {
|
|
RequestConnectionIDOmission bool
|
|
IdleTimeout time.Duration
|
|
}
|