# TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC cipher suite

> TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC (0xC1,0x01): GOST/GOST · Magma-CTR · TLS 1.2. ssl.sh rating: Weak. OpenSSL/GnuTLS names and Nginx/Apache config.

Source: https://ssl.sh/ciphers/tls-gostr341112-256-with-magma-ctr-omac/
Last updated: 2026-11-10

TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC (0xC1,0x01) is a cipher suite for TLS 1.2: GOST key exchange, GOST authentication, Magma-CTR encryption and OMAC message authentication. ssl.sh rates it Weak.

| Field | Value |
|---|---|
| IANA | TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC |
| Hex code | 0xC1,0x01 |
| OpenSSL | Not available in OpenSSL 3.5 |
| GnuTLS | - |
| Key exchange | GOST |
| Authentication | GOST |
| Encryption | Magma-CTR |
| MAC | OMAC |
| TLS versions | TLS 1.2 |
| Rating | Weak |
| IANA "Recommended" | N |
| References | RFC 9189 |

## What each component means

A [cipher suite](https://ssl.sh/glossary/cipher-suite/) names the algorithms a client and server agree on in one handshake. TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC combines GOST key exchange, GOST authentication, Magma-CTR encryption and OMAC integrity protection. Each part is explained below with its known weaknesses; for the bigger picture see [how cipher suites work](https://ssl.sh/learn/cipher-suites/).

Key exchange and authentication: GOST. The suite uses the Russian GOST R 34.10-2012 elliptic-curve algorithms with the 256-bit GOST R 34.11-2012 (Streebog) hash, as specified for TLS 1.2 in [RFC 9189](https://www.rfc-editor.org/rfc/rfc9189) (2022); the server authenticates with a GOST certificate.

Encryption: Magma, the 64-bit block cipher of GOST R 34.12-2015 (GOST 28147-89 with fixed S-boxes), with a 256-bit key. To limit how much data one key protects, the GOST TLS specifications re-derive record keys from the sequence number with the TLSTREE function.

Mode: counter-mode encryption with a separate OMAC (CMAC) authenticator, as specified for TLS 1.2 in [RFC 9189](https://www.rfc-editor.org/rfc/rfc9189) (2022). Unlike an AEAD, encryption and integrity are two separate steps.

## Why this rating

- Not an AEAD cipher: confidentiality and integrity rely on a separate MAC construction.
- No forward secrecy: the session keys are protected by the server's long-term key (static RSA/DH/ECDH, PSK or Kerberos), so a leaked key decrypts recorded traffic.

## Which TLS libraries support it

Support for TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC as read from each library's own source code or official documentation on 2026-11-10. “Enabled by default” means the library negotiates it with no configuration; “off by default” means it is implemented but has to be switched on.

| Library | Status | Details |
|---|---|---|
| OpenSSL 3.5 | Not supported | - |
| GnuTLS | Not supported | - |
| BoringSSL | Not supported | - |
| Go crypto/tls | Not supported | - |
| NSS 3.133 | Not supported | - |
| Firefox | Not supported | - |
| Java 21 (SunJSSE) | Not supported | - |
| Windows Schannel (Windows 11 / Server 2022) | Not supported | - |
| rustls 0.23.46 | Not supported | - |

None of the 9 libraries tracked here enables it by default. None of them implements it.

NSS shows the library's own defaults; Firefox switches every NSS suite off at start-up and re-enables only those with a security.ssl3.* or security.tls13.* preference. Java defaults are derived from the jdk.tls.disabledAlgorithms value Oracle documents for JDK 21, which later updates may extend. The OpenSSL and GnuTLS rows only show whether the suite is implemented.

- [BoringSSL — ssl/ssl_cipher.cc (main)](https://boringssl.googlesource.com/boringssl/+/refs/heads/main/ssl/ssl_cipher.cc) (2026-11-10)
- [Go — src/crypto/tls/cipher_suites.go (master)](https://github.com/golang/go/blob/master/src/crypto/tls/cipher_suites.go) (2026-11-10)
- [Go — src/crypto/tls/defaults.go (master)](https://github.com/golang/go/blob/master/src/crypto/tls/defaults.go) (2026-11-10)
- [NSS — lib/ssl/ssl3con.c (as vendored in Firefox)](https://github.com/mozilla-firefox/firefox/blob/main/security/nss/lib/ssl/ssl3con.c) (2026-11-10)
- [NSS — TAG-INFO](https://github.com/mozilla-firefox/firefox/blob/main/security/nss/TAG-INFO) (2026-11-10)
- [Firefox — security/manager/ssl/nsNSSComponent.cpp](https://github.com/mozilla-firefox/firefox/blob/main/security/manager/ssl/nsNSSComponent.cpp) (2026-11-10)
- [Firefox — modules/libpref/init/StaticPrefList.yaml](https://github.com/mozilla-firefox/firefox/blob/main/modules/libpref/init/StaticPrefList.yaml) (2026-11-10)
- [Oracle — JDK 21 Providers Documentation: SunJSSE Cipher Suites](https://docs.oracle.com/en/java/javase/21/security/oracle-providers.html#GUID-7093246A-31A3-4304-AC5F-5FB6400405E2) (2026-11-10)
- [Oracle — JDK 21 JSSE Reference Guide: jdk.tls.disabledAlgorithms](https://docs.oracle.com/en/java/javase/21/security/java-secure-socket-extension-jsse-reference-guide.html) (2026-11-10)
- [Microsoft Learn — TLS Cipher Suites in Windows 11](https://learn.microsoft.com/en-us/windows/win32/secauthn/tls-cipher-suites-in-windows-11) (2026-11-10)
- [Microsoft Learn — TLS Cipher Suites in Windows Server 2022](https://learn.microsoft.com/en-us/windows/win32/secauthn/tls-cipher-suites-in-windows-server-2022) (2026-11-10)
- [docs.rs — rustls 0.23.46 crypto::aws_lc_rs (default provider)](https://docs.rs/rustls/0.23.46/src/rustls/crypto/aws_lc_rs/mod.rs.html) (2026-11-10)

## History and standards status

TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC (0xC1,0x01) is registered in the IANA TLS Cipher Suites registry with [RFC 9189](https://www.rfc-editor.org/rfc/rfc9189), “GOST Cipher Suites for Transport Layer Security (TLS) Protocol Version 1.2” (March 2022, Informational) as its specification. The registry marks it N, which per [RFC 8447](https://www.rfc-editor.org/rfc/rfc8447) (2018) means it either hasn't been through the IETF consensus process, has limited applicability or is meant only for specific use cases, not necessarily that it is flawed.

## How to test whether a server accepts it

OpenSSL 3.5 cannot offer TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC, so openssl s_client can't test it directly; use a scanner that implements the suite itself.

nmap's ssl-enum-ciphers script connects repeatedly, trying one suite at a time, and lists every suite the server accepts with a grade from A to F. Look for TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC in its output:

```bash
nmap --script ssl-enum-ciphers -p 443 example.com
```

To decode a name or hex code, use the [cipher suite lookup](https://ssl.sh/tools/cipher-suite-lookup/); the [SSL checker](https://ssl.sh/tools/ssl-checker/) shows which protocol versions a live server accepts and the cipher suite it negotiates.

## FAQ

### Is TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC secure?

Only with caveats: ssl.sh rates it weak. Not an AEAD cipher: confidentiality and integrity rely on a separate MAC construction.

### Can TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC be used with TLS 1.3?

No. TLS 1.3 has its own suites that name only the AEAD and the hash, and TLS 1.2 suites can't be used in a TLS 1.3 handshake. TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC works with TLS 1.2. The closest TLS 1.3 suite is [TLS_AES_128_GCM_SHA256](https://ssl.sh/ciphers/tls-aes-128-gcm-sha256/), which TLS 1.3 combines with a separately negotiated key exchange such as X25519.

### How do I disable TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC in Nginx or Apache?

There is nothing to disable: OpenSSL 3.5, which Nginx and Apache httpd normally use, does not implement TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC, so they cannot negotiate it.

### Which clients and libraries still support TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC?

Not supported: OpenSSL 3.5, GnuTLS, BoringSSL, Go crypto/tls, NSS 3.133, Firefox, Java 21 (SunJSSE), Windows Schannel (Windows 11 / Server 2022) and rustls 0.23.46.
