mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 17:04:02 +03:00
FILE / ScuroNeko/mtg
tlstypes/consts.go
Исходный файл и его история в репозитории.
91 lines
2.1 KiB
Go
91 lines
2.1 KiB
Go
package tlstypes
|
|
|
|
import "io"
|
|
|
|
type RecordType uint8
|
|
|
|
const (
|
|
RecordTypeHandshake RecordType = 0x16
|
|
RecordTypeApplicationData RecordType = 0x17
|
|
RecordTypeChangeCipherSpec RecordType = 0x14
|
|
)
|
|
|
|
type HandshakeType uint8
|
|
|
|
const (
|
|
HandshakeTypeClient HandshakeType = 0x01
|
|
HandshakeTypeServer HandshakeType = 0x02
|
|
)
|
|
|
|
type CipherSuiteType uint8
|
|
|
|
const (
|
|
CipherSuiteType_TLS_AES_128_GCM_SHA256 CipherSuiteType = iota // nolint: stylecheck,golint,revive
|
|
CipherSuiteType_TLS_AES_256_GCM_SHA384 // nolint: stylecheck,golint,revive
|
|
CipherSuiteType_TLS_CHACHA20_POLY1305_SHA256 // nolint: stylecheck,golint,revive
|
|
)
|
|
|
|
func (c CipherSuiteType) Bytes() []byte {
|
|
switch c {
|
|
case CipherSuiteType_TLS_AES_128_GCM_SHA256:
|
|
return CipherSuiteType_TLS_AES_128_GCM_SHA256_Bytes
|
|
case CipherSuiteType_TLS_AES_256_GCM_SHA384:
|
|
return CipherSuiteType_TLS_AES_256_GCM_SHA384_Bytes
|
|
case CipherSuiteType_TLS_CHACHA20_POLY1305_SHA256:
|
|
return CipherSuiteType_TLS_CHACHA20_POLY1305_SHA256_Bytes
|
|
}
|
|
|
|
return CipherSuiteType_TLS_CHACHA20_POLY1305_SHA256_Bytes
|
|
}
|
|
|
|
type Version uint8
|
|
|
|
func (v Version) Bytes() []byte {
|
|
switch v {
|
|
case Version13:
|
|
return Version13Bytes
|
|
case Version12:
|
|
return Version12Bytes
|
|
case Version11:
|
|
return Version11Bytes
|
|
case Version10, VersionUnknown:
|
|
return Version10Bytes
|
|
}
|
|
|
|
return Version10Bytes
|
|
}
|
|
|
|
const (
|
|
VersionUnknown Version = iota
|
|
Version10
|
|
Version11
|
|
Version12
|
|
Version13
|
|
)
|
|
|
|
var (
|
|
Version10Bytes = []byte{0x03, 0x01}
|
|
Version11Bytes = []byte{0x03, 0x02}
|
|
Version12Bytes = []byte{0x03, 0x03}
|
|
Version13Bytes = []byte{0x03, 0x04}
|
|
|
|
CipherSuiteType_TLS_AES_128_GCM_SHA256_Bytes = []byte{0x13, 0x01} // nolint: stylecheck,golint,revive
|
|
CipherSuiteType_TLS_AES_256_GCM_SHA384_Bytes = []byte{0x13, 0x02} // nolint: stylecheck,golint,revive
|
|
CipherSuiteType_TLS_CHACHA20_POLY1305_SHA256_Bytes = []byte{0x13, 0x03} // nolint: stylecheck,golint,revive
|
|
)
|
|
|
|
type Byter interface {
|
|
WriteBytes(io.Writer)
|
|
Len() int
|
|
}
|
|
|
|
type RawBytes []byte
|
|
|
|
func (r RawBytes) WriteBytes(writer io.Writer) {
|
|
writer.Write(r) // nolint: errcheck
|
|
}
|
|
|
|
func (r RawBytes) Len() int {
|
|
return len(r)
|
|
}
|