client-hello-mirror/clienthello/compression_methods.go

35 lines
889 B
Go

// SPDX-FileCopyrightText: 2022-2023 nervuri <https://nervuri.net/contact>
//
// SPDX-License-Identifier: BSD-3-Clause
package clienthello
// https://www.rfc-editor.org/rfc/rfc3749#section-2
var CompressionMethodList = map[uint8]CompressionMethodInfo{
0: {Code: 0, Name: "null"},
1: {Code: 1, Name: "DEFLATE"},
}
type CompressionMethod any // (uint8 | CompressionMethodInfo)
type CompressionMethodInfo struct {
Code uint8 `json:"code"`
Name string `json:"name"`
}
func GetCompressionMethodInfo(compressionMethodCode uint8) CompressionMethodInfo {
info, found := CompressionMethodList[compressionMethodCode]
if !found {
info = CompressionMethodInfo{
Code: compressionMethodCode,
}
}
return info
}
func (m *ClientHelloMsg) AddCompressionMethodInfo() {
for i, code := range m.CompressionMethods {
m.CompressionMethods[i] = GetCompressionMethodInfo(code.(uint8))
}
}