Documentation ¶
Overview ¶
+build gofuzz
Index ¶
- Variables
- func BuildProbe(details JarmProbeOptions) []byte
- func ExtGetALPN(details JarmProbeOptions) []byte
- func ExtGetKeyShare(grease bool) []byte
- func ExtGetServerName(name string) []byte
- func ExtGetSupportedVersions(details JarmProbeOptions, grease bool) []byte
- func ExtractCipherBytes(c string) string
- func ExtractExtensionInfo(data []byte, offset int, serverHelloLength int) string
- func ExtractExtensionType(ext []byte, etypes [][]byte, evals [][]byte) string
- func ExtractVersionByte(c string) string
- func Fuzz(data []byte) int
- func GetCiphers(details JarmProbeOptions) []byte
- func GetExtensions(details JarmProbeOptions) []byte
- func GetUint16Bytes(v int) []byte
- func MungCiphers(ciphers [][]byte, request string) [][]byte
- func ParseServerHello(data []byte, details JarmProbeOptions) (string, error)
- func RandomBytes(numbytes int) []byte
- func RandomGrease() []byte
- func RawHashToFuzzyHash(raw string) string
- type JarmProbeOptions
Constants ¶
This section is empty.
Variables ¶
var ZeroHash = "00000000000000000000000000000000000000000000000000000000000000"
ZeroHash represents an empty JARM hash
Functions ¶
func BuildProbe ¶
func BuildProbe(details JarmProbeOptions) []byte
BuildProbe creates client hello packet for the probe
func ExtGetALPN ¶
func ExtGetALPN(details JarmProbeOptions) []byte
ExtGetALPN returns an encoded ALPN extension
func ExtGetKeyShare ¶
ExtGetKeyShare returns an encoded KeyShare extension
func ExtGetServerName ¶
ExtGetServerName returns an encoded server name extension
func ExtGetSupportedVersions ¶
func ExtGetSupportedVersions(details JarmProbeOptions, grease bool) []byte
ExtGetSupportedVersions returns an encoded SupportedVersions extension
func ExtractCipherBytes ¶
ExtractCipherBytes converts a selected cipher to an index of the known cipher list
func ExtractExtensionInfo ¶
ExtractExtensionInfo returns parsed extension information from a server hello response
func ExtractExtensionType ¶
ExtractExtensionType returns the stringified value of a given extension type
func ExtractVersionByte ¶
ExtractVersionByte returns 1-byte hex string representing the negotiated version
func GetCiphers ¶
func GetCiphers(details JarmProbeOptions) []byte
GetCiphers returns the cipher array for a given probe
func GetExtensions ¶
func GetExtensions(details JarmProbeOptions) []byte
GetExtensions returns the encoded extensions for a given probe
func GetUint16Bytes ¶
GetUint16Bytes returns the 16-bit big endian version of an integer
func MungCiphers ¶
MungCipher reorders the cipher list based on the probe settings
func ParseServerHello ¶
func ParseServerHello(data []byte, details JarmProbeOptions) (string, error)
ParseServerHello returns the raw fingerprint for a server hello response
func RandomBytes ¶
RandomBytes generates a random byte sequence of the requested length
func RawHashToFuzzyHash ¶
RawHashToFuzzyHash converts a raw hash to a JARM hash
Types ¶
type JarmProbeOptions ¶
type JarmProbeOptions struct { Hostname string Port int Version int Ciphers string CipherOrder string Grease string ALPN string V13Mode string ExtensionOrder string }
JarmProbeOptions specifies the parameters for a single probe
func GetProbes ¶
func GetProbes(hostname string, port int) []JarmProbeOptions
GetProbes returns the standard set of JARM probes in the correct order