| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package record
-
- import "fmt"
-
- const TLSMaxRecordSize = 65535 // max uint16
-
- type Type uint8
-
- const (
- TypeChangeCipherSpec Type = 0x14
- TypeHandshake Type = 0x16
- TypeApplicationData Type = 0x17
- )
-
- func (t Type) String() string {
- switch t {
- case TypeChangeCipherSpec:
- return "changeCipher(0x14)"
- case TypeHandshake:
- return "handshake(0x16)"
- case TypeApplicationData:
- return "applicationData(0x17)"
- }
-
- return fmt.Sprintf("unknown(%#x)", byte(t))
- }
-
- func (t Type) Valid() error {
- switch t {
- case TypeChangeCipherSpec, TypeHandshake, TypeApplicationData:
- return nil
- }
-
- return fmt.Errorf("unknown type %#x", byte(t))
- }
-
- type Version uint16
-
- const (
- Version10 Version = 769 // 0x03 0x01
- Version11 Version = 770 // 0x03 0x02
- Version12 Version = 771 // 0x03 0x03
- Version13 Version = 772 // 0x03 0x04
- )
-
- func (v Version) String() string {
- switch v {
- case Version10:
- return "tls1.0"
- case Version11:
- return "tls1.1"
- case Version12:
- return "tls1.2"
- case Version13:
- return "tls1.3"
- }
-
- return fmt.Sprintf("tls(%d)", uint16(v))
- }
-
- func (v Version) Valid() error {
- switch v {
- case Version10, Version11, Version12, Version13:
- return nil
- }
-
- return fmt.Errorf("unknown version %d", uint16(v))
- }
|