---
title: TLSInfo
summary: TLSInfo collects TLS-related metadata for incoming requests. All fields are ignored for outgoing requests.
url: https://www.fastly.com/documentation/reference/compute/sdks/go/compute-sdk-go/fsthttp/struct.TLSInfo/
---

**Kind:** Struct  
**Module:** [fsthttp](https://www.fastly.com/documentation/reference/compute/sdks/go/compute-sdk-go/fsthttp/)  
**Package:** compute-sdk-go v1.11.0  
**Source:** https://github.com/fastly/compute-sdk-go/blob/d6bf71b04516ed72d6018cab6fff701a865f86e5/fsthttp/request.go#L1129

```go
type TLSInfo struct {
	Protocol string

	ClientHello []byte

	ClientSNI string

	CipherOpenSSLName string

	JA3MD5 []byte

	JA4 []byte
}
```

TLSInfo collects TLS-related metadata for incoming requests. All fields are
ignored for outgoing requests.

## Fields

### Protocol

**Type:** `string`

Protocol contains the TLS protocol version used to secure the client TLS
connection, if any.

### ClientHello

**Type:** `[]byte`

ClientHello contains raw bytes sent by the client in the TLS ClientHello
message. See RFC 5246 for details.

### ClientSNI

**Type:** `string`

ClientSNI contains the raw Server Name Indication (SNI) the client sent in the ClientHello TLS record.

### CipherOpenSSLName

**Type:** `string`

CipherOpenSSLName contains the cipher suite used to secure the client TLS
connection. The value returned will be consistent with the OpenSSL name
for the cipher suite.

### JA3MD5

**Type:** `[]byte`

JA3MD5 contains the bytes of the JA3 signature of the client TLS request.
See https://www.fastly.com/blog/the-state-of-tls-fingerprinting-whats-working-what-isnt-and-whats-next

### JA4

**Type:** `[]byte`

JA4 contains the bytes of the JA4 signature of the client TLS request.
See https://github.com/FoxIO-LLC/ja4/blob/main/technical_details/JA4.md
