Inspect and run checks with chainctl
Read a pull request's Chainguard Checks results and logs from your terminal, run checks on a pushed commit without a …
For the complete documentation index, see llms.txt.
This is a summary of available algorithms in Go upstream TLS configuration, and the Chainguard Hardening changes to these.
Chainguard hardened TLS removes non-default, legacy, and deprecated algorithms to align with the Chainguard Hardened OpenSSL configuration. Everything it removes was already disabled by default in upstream Go, so default configurations don’t use any of it, and all of it has already been removed from Chainguard Hardened OpenSSL.
Hardened TLS affects only applications that opt in to insecure settings:
tlsrsakex, tls3des, tls10server,
tlssha1, or x509sha1 GODEBUG settings. Upstream Go has already removed
all of these except tlssha1.Config.MaxVersion to TLS 1.1 or earlier.Config.CipherSuites,
without any that are still available.All of these settings are insecure.
In the tables below, Default means enabled by default, Available means supported but enabled only through configuration, and Removed means not supported.
The tables are presented in the format similar to the IANA TLS Parameters.
For more information about Transport Layer Security (TLS) please see the following references:
| Value | Version | Go 1.27 | Go 1.27 Hardened | Go 1.28 |
|---|---|---|---|---|
| 0x0304 | TLSv1.3 | Default | Default | Default |
| 0x0303 | TLSv1.2 | Default | Default | Default |
| 0x0302 | TLSv1.1 | Available | Removed | |
| 0x0301 | TLSv1.0 | Available | Removed |
In Go 1.27, TLS 1.0 and 1.1 are only enabled when Config.MinVersion is set below VersionTLS12.
Go 1.27 Hardened removes TLS 1.0 and 1.1, and Go 1.28 won’t support them.
| Value | Cipher Suite | Go 1.27 | Go 1.27 Hardened | Go 1.28 |
|---|---|---|---|---|
| TLSv1.3 | ||||
| 0x13,0x01 | TLS_AES_128_GCM_SHA256 | Default | Default | Default |
| 0x13,0x02 | TLS_AES_256_GCM_SHA384 | Default | Default | Default |
| 0x13,0x03 | TLS_CHACHA20_POLY1305_SHA256 | Default | Default | Default |
| TLSv1.2 | ||||
| 0x00,0x05 | TLS_RSA_WITH_RC4_128_SHA | Available | Removed | |
| 0x00,0x0A | TLS_RSA_WITH_3DES_EDE_CBC_SHA | Available | Removed | |
| 0x00,0x2F | TLS_RSA_WITH_AES_128_CBC_SHA | Available | Removed | |
| 0x00,0x35 | TLS_RSA_WITH_AES_256_CBC_SHA | Available | Removed | |
| 0x00,0x3C | TLS_RSA_WITH_AES_128_CBC_SHA256 | Available | Removed | |
| 0x00,0x9C | TLS_RSA_WITH_AES_128_GCM_SHA256 | Available | Removed | |
| 0x00,0x9D | TLS_RSA_WITH_AES_256_GCM_SHA384 | Available | Removed | |
| 0xC0,0x07 | TLS_ECDHE_ECDSA_WITH_RC4_128_SHA | Available | Removed | |
| 0xC0,0x09 | TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA | Default | Default | Default |
| 0xC0,0x0A | TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA | Default | Default | Default |
| 0xC0,0x11 | TLS_ECDHE_RSA_WITH_RC4_128_SHA | Available | Removed | |
| 0xC0,0x12 | TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA | Available | Removed | |
| 0xC0,0x13 | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | Default | Default | Default |
| 0xC0,0x14 | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA | Default | Default | Default |
| 0xC0,0x23 | TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | Available | Available | Available |
| 0xC0,0x27 | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | Available | Available | Available |
| 0xC0,0x2B | TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 | Default | Default | Default |
| 0xC0,0x2C | TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 | Default | Default | Default |
| 0xC0,0x2F | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | Default | Default | Default |
| 0xC0,0x30 | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | Default | Default | Default |
| 0xCC,0xA8 | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 | Default | Default | Default |
| 0xCC,0xA9 | TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 | Default | Default | Default |
| Value | Supported Group | Go 1.27 | Go 1.27 Hardened | Go 1.28 |
|---|---|---|---|---|
| PQC TLSv1.3 | ||||
| 514 | MLKEM1024 | Available | Removed | |
| 4587 | SecP256r1MLKEM768 | Default | Default | Default |
| 4588 | X25519MLKEM768 | Default | Default | Default |
| 4589 | SecP384r1MLKEM1024 | Default | Default | Default |
| TLSv1.2 & TLSv1.3 | ||||
| 23 | secp256r1 | Default | Default | Default |
| 24 | secp384r1 | Default | Default | Default |
| 25 | secp521r1 | Default | Default | Default |
| 29 | x25519 | Default | Default | Default |
| Value | Signature Scheme | Go 1.27 | Go 1.27 Hardened | Go 1.28 |
|---|---|---|---|---|
| PQC TLSv1.3 | ||||
| 0x0904 | mldsa44 | Default | Default | Default |
| 0x0905 | mldsa65 | Default | Default | Default |
| 0x0906 | mldsa87 | Default | Default | Default |
| TLSv1.2 & TLSv1.3 | ||||
| 0x0401 | rsa_pkcs1_sha256 | Default | Default | Default |
| 0x0403 | ecdsa_secp256r1_sha256 | Default | Default | Default |
| 0x0501 | rsa_pkcs1_sha384 | Default | Default | Default |
| 0x0503 | ecdsa_secp384r1_sha384 | Default | Default | Default |
| 0x0601 | rsa_pkcs1_sha512 | Default | Default | Default |
| 0x0603 | ecdsa_secp521r1_sha512 | Default | Default | Default |
| 0x0804 | rsa_pss_rsae_sha256 | Default | Default | Default |
| 0x0805 | rsa_pss_rsae_sha384 | Default | Default | Default |
| 0x0806 | rsa_pss_rsae_sha512 | Default | Default | Default |
| 0x0807 | ed25519 | Default | Default | Default |
| TLSv1.2 | ||||
| 0x0201 | rsa_pkcs1_sha1 | Available | Removed | |
| 0x0203 | ecdsa_sha1 | Available | Removed | |
In Go 1.27, SHA-1 signatures in the TLS 1.2 handshake require GODEBUG=tlssha1=1. In TLS 1.3, rsa_pkcs1_* and SHA-1 schemes are accepted only for signatures in certificates.
| OID | Elliptic Curve | Go 1.27 | Go 1.27 Hardened | Go 1.28 |
|---|---|---|---|---|
| 1.2.840.10045.3.1.7 | prime256v1 (P-256, secp256r1) | Default | Default | Default |
| 1.3.132.0.33 | secp224r1 (P-224) | Available | Removed | |
| 1.3.132.0.34 | secp384r1 (P-384) | Default | Default | Default |
| 1.3.132.0.35 | secp521r1 (P-521) | Default | Default | Default |
In Go 1.27, P-224 certificates can only be used with TLS 1.2 and earlier, because TLS 1.3 ECDSA signature schemes are bound to P-256, P-384 and P-521.
Last updated: 2026-09-28 14:00