| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package record
-
- import "fmt"
-
- const TLSMaxRecordSize = 65535 // max uint16
-
- type Type uint8
-
- const (
- // TypeChangeCipherSpec defines a byte value of the TLS record when a
- // peer wants to change a specifications of the chosen cipher.
- TypeChangeCipherSpec Type = 0x14
-
- // TypeHandshake defines a byte value of the TLS record when a peer
- // initiates a new TLS connection and wants to make a handshake
- // ceremony.
- TypeHandshake Type = 0x16
-
- // TypeApplicationData defines a byte value of the TLS record when a
- // peer sends an user data, not a control frames.
- 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 defines a TLS1.0.
- Version10 Version = 769 // 0x03 0x01
-
- // Version11 defines a TLS1.1.
- Version11 Version = 770 // 0x03 0x02
-
- // Version12 defines a TLS1.2.
- Version12 Version = 771 // 0x03 0x03
-
- // Version13 defines a TLS1.3.
- 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))
- }
|