forked from quic-go/quic-go
27 lines
837 B
Go
27 lines
837 B
Go
package handshake
|
|
|
|
import (
|
|
"io"
|
|
|
|
"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)
|
|
}
|